令人尊敬的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下可以提供更为有利的带宽,也就造成了我们得到的静态页面测试结果,在以后的测试中,我们将会继续检验这个功能。