Leverage the Top 10 Performance Improvements in IIS 7.0

This month, TechNet Magazine published my article about the top IIS 7.0 features you can use to unlock the performance potential of your web server.  You can read it at Top 10 Performance Improvements in IIS 7.0.

IIS 7.0 improves on the already solid performance of its predecessor in quite a few places. However, this article is not about features where IIS 7.0 performs better than IIS 6.0 … Rather, it is about new capabilities IIS 7.0 provides that can significantly improve performance, scalability, and reduce operational costs of running web applications.

Some of these include reducing bandwidth costs with dynamic compression and media bitrate throttling, creating efficient application topologies with specialized web servers, using new more efficient server APIs, and utilizing output caching.

In addition to the features I discuss in the article, which you must proactively leverage, IIS 7.0 offers a number of performance improvements out of the box.  Here are some of the areas where you’ll reap performance improvements just by moving to IIS 7.0:

  • Windows Authentication (NTLM/Kerberos) - now done in the kernel by HTTP.SYS
  • SSL – also done in the kernel by HTTP.SYS (I’ve seen 150%+ improvements for SSL scenarios in some tests)
  • Default documents (i.e. http://yoursite/ -> http://yoursite/index.html) – now kernel-cacheable (for an order of magnitude improvement)
  • Better scalability on multi-proc and multi-core machines
  • FastCGI instead of CGI for PHP apps (see below)

For example, the new FastCGI support offers tremendous potential for improving performance of application frameworks like PHP that previously needed to use CGI for stability reasons. In one of my tests, helloworld.php throughput jumped more than 100 times from 22 to 2239 RPS when moving it from CGI to FastCGI, and removing the process per request overhead. With FastCGI, the platform is no longer a bottleneck:

PHP throughput using FastCGI on IIS 7.0

Hello.php throughput using FastCGI vs. CGI on IIS 7.0 shown on a log(10) scale.

Most of the things mentioned in Top 10 Performance Improvements in IIS 7.0 deserve their own articles to describe them in depth.  This article should point you in the right direction for making the most out of the IIS 7.0 platform performance-wise. As always, feel free to ask questions, and I’ll look to cover more specifics in upcoming blog posts.

Now, go read all about it.

 

Thanks,

Mike

Published 02 August 08 08:40 by Mike Volodarsky
Filed under: , ,

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

# MVolo's Blog said on August 2, 2008 9:50 PM:

IIS 7.0 improves on the already solid performance of its predecessor in quite a few places. But the real

# YESChandana -Blog said on August 3, 2008 7:13 AM:

My favorite links from the last week - 1st Week of August 2008

# Matt Johnson's Technical Adventures said on August 8, 2008 8:54 AM:

You Had Me At EHLO... : Understanding Exchange 2007 Memory Usage and its use of the Paging File SeanDaniel.com

# JM said on August 20, 2008 2:40 AM:
Good explanation of the performance improvements in IIS 7, they look very promising ...
# speaking about bottlenecks said on August 22, 2008 7:15 AM:

Microsoft people usually speak about bottlenecks in their product only in the next release of that product. They will say "xyz feature was a performance bottleneck in previous version and in our new version it is amazingly performing"... Whyis it so

# Mike Volodarsky said on August 23, 2008 2:27 AM:

Some of it is marketing (I am not at MS anymore, so I can admit it :)) ... But most of it is the fact that it often takes years to accumulate solid feedback around performance from real-life deployments of platform software. So, its definitely easier to point out the problems in hindsight, and get them addressed in the future release.

That said, IIS doesn't have many places where it creates performance bottlenecks - in 99% of the cases, the bottleneck lies in the application (CGI being a notable exception to this ...). It doesnt matter if the server can do 60,000 requests per second if the application makes 10 database queries on each request and can only do 20 requests per second.

This is why I chose not to focus on the platform performance in this article, but instead focus on features you can proactively leverage to proactively improve application performance.

# sunnybear said on November 6, 2008 7:53 AM:
Is there any client side performance improvement' list? I mena how to enable gzip (static or dynamic), how to setup caching, how to maybe combine multiple css/js files on server side?
# wan optimizer information said on January 6, 2009 1:27 PM:

I\'ve found that in our network WAN accelerators have made a big difference

# NewsPeeps said on August 8, 2009 1:21 PM:

Thank you for submitting this cool story - Trackback from NewsPeeps

Leave a Comment

(required) 
(optional)
(required) 
Enter the code you see below


About Mike Volodarsky

For the past 5 years, I was the core Program Manager for Microsoft ASP.NET 2.0 and IIS 7.0 products. I drove the design and development of the IIS 7.0 web server core, the IIS FastCGI support, the AppCmd command line tool, the ASP.NET Integrated pipeline, and other special projects around server security, performance, and scalability. Now, I am working on my own on cutting edge web server tech on top of the Microsoft IIS platform, and continue blogging about it here.

About me



For the past 5 years, I was the core server Program Manager for the IIS 7.0 and ASP.NET 2.0 products at Microsoft.
Now, I work on advanced web server tech using IIS 7.0, .NET, and Windows Server 2008 and write about it in this blog.

View Michael Volodarsky's profile on LinkedIn

Writings



TechNet Magazine
>Top 10 Performance Improvements in IIS 7.0

MSDN Magazine
>IIS 7.0: Build Web Server Solutions with End-To-End Extensibility
>IIS 7.0: Enhance Your Apps with the Integrated ASP.NET Pipeline
>IIS 7.0: Explore The Web Server For Windows Vista And Beyond
>Design and Deploy Secure Web Apps with ASP.NET 2.0 and IIS 6.0
>Fast, Scalable, and Secure Session State Management for Your Web Applications


Tools and Modules

LeechGuard
IconHandler 2.0
DirectoryListing
HttpRedirection
IIS Auth for Wordpress
iisschema.exe
PortCheck.exe v2.0

Popular Posts

- ASP.NET 2.0 Breaking Changes on IIS 7.0
- Develop IIS7 modules and handlers with .NET
- Troubleshoot IIS7 errors like a pro
- Troubleshooting 503 / "service unavailable" errors
- Troubleshooting "server not found" errors
- Create IIS7 sites, applications, and virtual directories
- Run Ruby on Rails with IIS FastCGI
- VS Debugging of ASP.NET applications on Windows Vista
- Stop hot-linking with IIS and ASP.NET

Tags

Search

Go

This Blog

Archives

Good IIS Blogs

Disclaimer

These postings are provided as is with no warranties, and confer no rights. The views expressed in this blog are entirely my own.

Syndication