服务器操作系统的更新换代总是极为难得的,例如,微软的Windows Server 2008和其上一代Windows Server 2003就相差了5年(中间插入了一个Windows Server 2003 R2),而Windows Server 2003和它的上一代Windows 2000 Server又相差了3年。
Windows Server 2008
Windows Server 2003
Windows Server 2008是微软公司今年年初(3月13日)推出的服务器操作系统,在Web、虚拟化、安全、可用性等方面都进行了显著的改进,被宣称为是迄今最灵活、最强健、也是最安全的Windows服务器操作系统,其实际工作表现如何呢?IT168评测中心意欲通过一系列的测试文章,来解答:Windows Server 2008的性能如何?现在值不值得升级?等诸如此类的问题。
我们打算先从最常见的Web应用开始,我们先使用了WebBench进行测试,以后我们会加入更多的测试种类。
WebBench v5.0
WebBench是针对服务器作为Web Server时的性能进行测试,我们在被测服务器上安装了IIS7.0组件,以提供测试所需的Web服务。在测试中我们开启了网络实验室中的60台客户端,分别使用了WebBench 5.0内置的动态CGI以及静态页面脚本对服务器进行了测试。
静态测试是由客户端读取预先放置在服务器Web Server下的Web页面(wbtree),这项测试主要考察的是服务器磁盘系统以及网络连接性能。我们使用了实验室中的60台客户端,配合Static_mt.tst多线程静态脚本测试向被测服务器发送请求。
动态测试偏重于对服务器CPU子系统的性能测试,它对于Web服务器提供了足够的负载。我们将一个C语言编写的CGI源文件Simcigi.c编译为Simcgi.exe,并将其作为动态测试中的CGI脚本。在测试过程中,每台安装了WebBench客户端软件的PC,会在300秒的时间内持续向服务器发送CGI请求,而控制台会纪录并汇总服务器所响应CGI请求的数据。CGI测试的成绩高低,主要取决于服务器处理器子系统性能的优劣。处理器子系统包括CPU、内存以及内存控制器,CPU频率、缓存以及内存容量大小和内存带宽,都会影响该项成绩。
DELL 2950测试平台
主板 DELL
处理器 Xeon E5430 x 2
主频 2.66GHz
FSB 1333MHz
L1容量 64K(Data容量为32K)
L2容量 12MB(共享)
芯片组 Intel 5000X
内存 2GB FBD DDR2 667 SDRAM x 8
磁盘控制器 LSI Logic MegaRAID SAS 8708ELP
硬盘 Seagate Cheetah 73GB 15K.5 SAS x 3
硬盘设置 RAID 5,条带大小64KB,适应性预读,Cached IO
主系统分区30GB,次分区50GB,NTFS格式
网卡 Broadcom BCM5708C千兆网卡 X 4
我们采用了评测中心的一台DELL 2950服务器,配置了双路Intel 45nm Xeon E5430处理器,频率为2.66GHz,并能支持SSE4.1指令集。服务器还使用了Intel 5000X芯片组,提供24MB的Snoop Filter缓存,这可以提升高负荷时的内存/处理器性能。磁盘系统则是3块15000RPM的Cheetah 15K.5,并通过一块PCIe x8的LSI MegaRAID SAS 8708ELP来组建RAID 5阵列。最后,为了避免网络瓶颈,我们使用了4块Broadcom BCM5708C千兆网卡,并使用了Broadcom驱动的Team功能。
对比测试环境
A Windows Server 2008 Enterprise Edition
B Windows Server 2003 Enterprise Edition
Windows Server 2008集成的Internet Information Services 7——IIS7.0
Windows服务器操作系统集成了Web服务软件:Internet Information Services,2003集成的是6.0,而2008集成的则是7.0。下面是2008宣传文档中对IIS7.0的描述:
IIS的改进
令人尊敬的Microsoft Web服务器软件到Windows Server 2008已经经历了数次修订。IIS 7首次完全公开并完全部件化——你可以只安装你所需要的组件,因此更轻,响应更多且更不易被攻击。IIS管理界面也完全重新设计。核心的改进包括:
*全新的组件结构
在IIS历史上,首次,管理员尝试了可完全控制IIS的哪些部分被安装并在特定时间运行。你可以运行你所需的特定服务。这样系统也会更安全,并且易于管理,程序的执行情况也会更好。FastCGI支持意味着PHP和其他运行时间语言被快速执行,安装Windows的机子之前没有这一功能。
*灵活的扩展模式
IIS 7使得开发者可以进入一个全新的APIs套装——可直接与IIS沟通,这使得模块开发和定制更容易进行。开发者甚至可以进入内部结构、脚本,甚至可以登录并管理IIS域——为勇于尝试的管理员和第三方软件供应商开了很多通路以扩展IIS的功能。
*简化结构以及应用软件的配置功能
结构可以通过XML文件完全完成。中心IIS结构可以通过多个文件进行扩展,使得很多网站和应用软件运行在相通的服务器上但是相互独立,但是其结构仍易于管理。微软公司最钟爱IIS 7的组件是用相同配置的机器建立网络田,因为新的服务器田已经联机了,管理员可以轻松采用XCOPY同时通过新的服务器转移当前结构文件。其次,新服务器上安装的IIS与现有服务器上的相同。这或许是最大的好处,也是IIS 7进行的更新中最受欢迎之处。
*委托管理功能
跟Active Directory——实现了使管理员分配许可以执行确定的管理功能很像,IIS管理员可以将一些功能的管理任务委托给其他人,例如网站所有者。
*更多有效的管理功能
你不会再在大量标签和对话框中寻找一个你需要更改的设置。创建一个新的网站只有一个对话框,增加一个应用软件池同样只有一个对话框。所有的工具以及功能都在控制台的敏感区域。IIS Manager完全进行了重新设计,同时加入了一个新的管理有效性命令行:appcmd.exe。
IIS 7.0架构
Windows Server 2008 系统属性
Windows Server 2003 系统属性
Windows Server 2008 Broadcom网卡控制台
Windows Server 2003 Broadcom网卡控制台
Windows Server 2008 IIS7.0
Windows Server 2003 IIS6.0
WebBench动态CGI测试性能
或许和很多人想象的不一样:超过28台客户机之后,2008的性能开始下降了,2003在这个项目里面占据了优势,这是为什么呢?
Window Server 2008任务管理器
WebBench动态测试是一个依赖于处理器性能的测试,在测试过程中,处理器几乎处于满负荷状态,我们的Windows Server 2008系统显然在其他方面占用了处理器资源。可以想象,全新的GUI界面以及额外的IIS模块是缘由,就像Windows XP升级到Windows Vista一样。
Windows Server 2008的Server Core模式没有GUI界面占用资源的烦恼,不过它不支持动态页面——Server Core下面的IIS只有正常功能的一小部分,仅有静态HTML主机而没有动态Web应用软件支持,实在让人感到遗憾。我们以后或许会加入对Server Core模式下的性能测试,这种模式下性能应该很不错。
WebBench静态性能
在静态性能测试当中,Windows Server 2008打了一个漂亮的翻身仗,性能要高出Windows Server 2003 20%以上。Windows Server 2008 + IIS 7.0 + 4块BCM5708C千兆网卡聚合可以提供30000的每秒请求处理数量,实际占据了180MB/s的网络带宽,也就是1440Mbps的带宽。
IIS7.0的Compression带宽节约模式
这个测试使用了IIS7.0的Compression带宽节约模式用来压缩静态页面测试的服务器响应,这个可以提高有效带宽。之所以不在动态测试中使用这个选项是因为:动态页面测试对带宽压力不大,而且压缩需要占用处理器资源,不适合本来就很吃处理器资源的动态测试。
Windows Server 2008 : 压缩与不压缩对比
为了检查这个选项的作用,我们分别测试了打开与不打开的性能,结果显示,他们非常接近,不压缩状态下的性能反而略为高一些。
在传统的Web性能测试当中,Windows Server 2003和Windows Server 2008各有所长,由于GUI界面占用了一些资源,因此2008的动态页面测试性能不如同样硬件条件下的2003,而在依赖于网络带宽的静态页面测试当中,2008表现出了良好的性能,这表明2008的网络性能更为出色。
继续分析:在Windows Server 2008当中,网络硬件得到了更有效的利用从而加快了网络传输的速度。根据资料,Windows Server 2008的网络协议栈进行了重写(要知道Windows的网络协议栈从Windows 95以来就没什么变动过了),加入了智能协调系统和优化算法以确保高效通信,同时APIs到网络协议栈更直接地显现,使得开发者更容易与网络协议栈进行沟通。这些都体现到了最终的测试性能上。
Windows Server 2008 TCP/IP网络协议栈的改进
Windows Server 2008 TCP/IP网络协议栈的改变其中一项改进是自动协调TCP窗口的大小:Windows Server 2008可以在每个连接上自动调整接收窗口的大小,提高同一网络上服务器间大型数据传输的效率。微软公司引用了如下例子:在10 Gigabit以太网络上,信息包的规模可以达到6 Megabytes。
此外,2008的网络架构也得到了改进。在之前的Windows Server版本上,一块网卡仅能与一个物理处理器核心相连接。现在,2008可以更好地支持多处理核心和多网卡,处理器之间的传输也更为优化——这一功能被称为接收端调节(receive-side scaling)。这个功能对于多处理器/多网卡服务器来说至关重要,就我们的实际测试情况,8个处理器核心配合4块网卡在Windows Server 2008下可以提供更为有利的带宽,也就造成了我们得到的静态页面测试结果,在以后的测试中,我们将会继续检验这个功能。