Server 2008比Server 2003慢50%!

我有两台运行相同硬件的服务器:

  • IBM xSeries x345(8670 / 71X)
  • 4Gb RAM
  • RAID 5中的4个30Gb磁盘,硬件控制器

在一台服务器上,我有Windows Server 2003 R2 SP2 +所有的修补程序。 另一方面,我有Windows Server 2008 SP2 +所有的修补程序。

由于没有其他主要的进程在系统上运行(如果win2003系统负载较重),我安装我们的软件并运行自动化testing。 win2008系统需要多花50%的时间来运行它。

该软件是一个套接字服务器守护程序,configuration为一直运行所有的时间监听客户端连接。 对于每个客户端连接,它启动一个新的进程将一个套接字连接到它,然后代理客户端和新进程之间的原始套接字数据。 所有可执行文件都进行了签名(但即使我使用未签名的可执行文件来启动每个请求,也没有区别)。

在两台服务器(PassMark)上做一个非常简单的性能testing,结果非常相似。 我假设问题出在我自己的软件上,因为我无法想象2008年比2003年要慢很多。

在深入分析这个问题之前,还有其他人在比较Server 2003和Server 2008上安装相同软件的时候看到重大的减速吗? 如果是这样,原因是什么?

去年我们部署了10-15台SBS 2008服务器。 大多数客户已经注意到全面的缓慢,无论是networking相关,电子邮件,文件访问,公共硬盘访问,一切都比较慢。 似乎2008年的代码只是猪慢。 记得Vista? SBS 2008build立在相同的代码上。 我们都知道XP比Vista快,所以2003年的可能比2008年更快/更稳定。

我会说R2更好(build立在win7上),大部分速度问题已经解决。 这是什么意思呢? 我并不感到惊讶,你的2008盒子运行缓慢,正常。

你是否应用了所有的IBM特定的驱动程序/补丁或只是MS的? 两台计算机是否都报告相同的硬件,并试图在计算机之间交换磁盘以查看是物理还是操作系统问题?

额外的开销是否会由于产生新的过程而引起? 这听起来像应用程序的行为更像一个本地的Unix守护进程,其中每个连接的附加进程。 Windows在创build进程和Unix时有更多的开销,所以大多数Windows服务器应用程序使用multithreading模型来处理传入连接。

机器上的地址大小是否有差异? 是2003年的机器32位,2008年的机器64位?