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? Operations has been an early and active adopters of IIS 7.0 / Windows Server 2008.  We actually started running a single server on the 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 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 site.


Listed below the graphical data results is the methodology used in this performance analysis.

Performance Metrics

W2K3 SP2



RPS / CPU Utilization (%) =  Requests per CPU Cycle






W2K3 SP2



Performance Indicators




CPU Utilization (%)




Web Service -Total Methods Requests/Sec “RPS”




Web Service – Current Connections




Load Balancing –  Current Client Connections



.NET CLR Memory – % Time in GC




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

 SRV 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)

 CPU Utilization


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 Svc Total Methods


Web Service – Current Connections

W2K3 SP2     280

W2K8 RTM   294   ~ 5% increase

 WEBSvc Current Connections

 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.

 HW Load Balancing 

.NET CLR Memory – % Time in GC

W2K3 SP2    1.1%

W2K8 RTM   2.5%  No significant degradation in “Time in GC”

.Net CLR Memory 


Performance Overview and methodology:


During this assessment the live 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 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



  Model: HP DL585 G1 (4 dual-core CPUs)

  RAM: 32GB 



 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.



We gathered performance monitor logs for 72 hours during peak traffic (Monday – Wednesday) for a cluster of 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.

Comments (11)

  1. Anonymous says:

    Now that Windows Server 2008 has been released earlier this year many enterprises are assessing the value

  2. Anonymous says:

    Interested in knowing what kind of performance gains you can expect from IIS7?  Performance is a

  3. Anonymous says:

    The posted some real world numbers on IIS 7. They show how much IIS has improved performance

  4. Anonymous says:

    If you are in search of real world performance numbers on Windows Server 2008, go here. It is basically the sysadmins that have been running W2K8 and W2K3 side by side, serving out’s content.

  5. Anonymous says:

    Thought TechEd was as good a time as any to give you all some great news…I’VE BEEN UPGRADED! Well, it’s

  6. Anonymous says:

    Learn how the operations team meets the demands for one of the top 5 websites on the Internet today. The team supports the server product teams at Microsoft by "dogfooding" products such as Windows Server 2008, SQL Server 2008 and IIS7 years

  7. Anonymous says:

    Web Introducing IE=EmulateIE7 Operations Performance Analysis of IIS 7.0/Windows Server

  8. Anonymous says:

    Which tool was used to conduct the Performance Analysis of IIS 6.0 on Windows Server 2003 SP2???

  9. Anonymous says:


  10. Anonymous says:


  11. Chris Stinson says:

    IIS Hacks has been running on IIS 7 for about 2 weeks now and feels more responsive. It has a faster first byte response when the server is under load. Like the MS Sys Admins, there is higher CPU utilization.