Microsoft.com Operations Performance Analysis of IIS 7.0/Windows Server 2008
Now that Windows Server 2008 has been released earlier this year many enterprises are assessing the value proposition of moving to the Windows Server 2008 and IIS 7.0. As an IT Pro or decision maker in this process you want real world working proof to make your decision clearer. Sure, the new file based configuration system and modular architecture of IIS 7.0 make administrating your web servers a whole lot more flexible. But how does it perform against its predecessor IIS 6.0 / Windows Server 2003?
Microsoft.com Operations has been an early and active adopters of IIS 7.0 / Windows Server 2008. We actually started running a single server on the www.microsoft.com site back in June 2005. We set out to answer this question. Is IIS 7.0 / Windows Server 2008 more performant then IIS 6.0 / Windows Server 2003? We performed a side by side performance analysis on the www.microsoft.com site which was taking live internet traffic during peak traffic hours.
During this performance assessment we found that the CPU usage was higher on Microsoft Windows Server 2008 RTM servers, which is driven by the higher number of RPS the servers were handling. As mentioned below the hardware load balancers are sending more traffic to the Windows Server 2008 RTM servers (31% more RPS) as they are completing the outstanding web requests faster than the W2K3 SP2 server. A good metric listed below is the “efficiency” or “cost” of the number of requests per CPU cycle (RPS / CPU Utilization %). Using this metric, IIS 7.0/W2K8 RTM is over 10% more efficient then IIS 6.0/WS03 SP2 in handling live web platform traffic for the www.microsoft.com site.
Listed below the graphical data results is the methodology used in this performance analysis.
|
Performance Metrics |
W2K3 SP2 |
WS2K8 RTM |
Change |
|
RPS / CPU Utilization (%) = Requests per CPU Cycle |
4.36 |
4.84 |
10.9% |
|
|
W2K3 SP2 |
W2K8 RTM |
Change |
|
Performance Indicators |
A |
B |
(A-B)/A |
|
CPU Utilization (%) |
44.8% |
52.8% |
-17.9% |
|
Web Service -Total Methods Requests/Sec “RPS” |
194 |
255 |
31.4% |
|
Web Service – Current Connections |
280 |
294 |
5.0% |
|
Load Balancing – Current Client Connections |
116 |
116 |
0 |
|
.NET CLR Memory – % Time in GC |
1.1% |
2.5% |
|
Server Efficiency (RPS/ CPU %) – Efficiency of serving live web platform traffic
W2K3 SP2 4.36 “requests per CPU cycle”
W2K8 RTM 4.84 ~ 10.9% increased efficiency

CPU Utilization (%)
W2K3 SP2 44.8%
W2K8 RTM 52.8% ~ 17.9% degradation (This is impacted by the increased RPS the W2K8 servers are handling)

Web Service – Total Methods Requests/Sec (RPS)
W2K3 SP2 194
W2K8 RTM 255 ~ 31.4% more traffic is being sent to the W2K8 RTM servers

Web Service – Current Connections
W2K3 SP2 280
W2K8 RTM 294 ~ 5% increase

Load Balancing – Current Client Connections
W2K3 SP2 116
W2K8 RTM 116 Equal – as the hardware load balancer maintains the same amount of outstanding open client connections.
.NET CLR Memory – % Time in GC
W2K3 SP2 1.1%
W2K8 RTM 2.5% No significant degradation in “Time in GC”
Performance Overview and methodology:
Site: www.microsoft.com
During this assessment the live www.microsoft.com site was comprised on 80 servers. There were four load balanced clusters of twenty servers each, located in multiple datacenters. This performance analysis was developed by using a single twenty server cluster on the www.microsoft.com site. The cluster is comprised of 19 Windows Server 2008 RTM servers (W2K8 RTM) and a single Windows Server 2003 SP2 (W2K3 SP2) server all taking live internet facing traffic. This Lone Windows Server 2003 has become quite famous. In fact, he actually has his own blog located at http://blogs.technet.com/windowsserver/pages/about-lone-server.aspx
Hardware:
Model: HP DL585 G1 (4 dual-core CPUs)
RAM: 32GB
OS:
Windows Server 2008 RTM (Build: 6.0.6001.18000) Enterprise version x64
Load Balancing:
We are using a hardware load balancing solution. The load balancing algorithm we are using is based on “Least Current Client Connections” to each load balanced member server of the cluster (not round robin, or other any other load balancing algorithms). The hardware load balancer will maintain the same number of current client connections to each member of the cluster. So if a W2K8 server is completing web requests faster than a W2K3 server, the load balancer will send more traffic to the server W2K8 RTM server.
Methodology:
We gathered performance monitor logs for 72 hours during peak traffic (Monday - Wednesday) for a cluster of www.microsoft.com web servers. In all the charts above the W2K8 RTM data is based on an average of all the W2K8 RTM servers in a single cluster. While the W2K3 SP2 data is based on the single (Lone) server that was in rotation.