IIS8 Memory Improvements

There is a lot of buzz in the Internet Information Services (IIS) community about IIS 8, the version of IIS that is included with Windows Server 2012.  While there are plenty of new features in IIS 8, for this writing I am going to focus on the memory improvements that you will see for the application pools.  Memory is a key resource on an IIS server as it is often the first limiting factor if you planned your CPU and disk requirements appropriately.

I was fortunate to be able to attend TechEd North America 2012 and get some early first-hand knowledge of IIS 8.  During the conference I attended all of the sessions on IIS since that is my primary interest.  One presentation really caught my attention because not only did it talk about performance improvements, it included some demos showcasing these improvements.  With numbers.

Numbers mean a lot to me.  Any person can talk on and on but to me it all comes down to numbers.  My first degree in mathematics has taught me that while numbers never lie, they can be manipulated in many ways.  These different ways are sometimes used to present misleading information so I always look at numbers cautiously.  With that in mind I set out to come up with some of my own numbers.

My goal here isn’t to try to disprove the numbers that were presented, it is to present numbers to you from my perspective.  In fact, I am not running the same tests that were presented on purpose but have come up with my own tests.  In general terms, there is one claim that I am looking at for the purpose of this post:  IIS 8 uses less memory.

I built two fresh Windows servers, one with Windows 2008 R2 64-bit running IIS 7.5 and one with Windows 2012 64-bit running IIS 8.  Each one is virtualized in my test lab and is running on the same hardware with the same resources allocated to it.  Both also have the most up-to-date security patches installed.  I want the server environment on both servers to be as equal as possible.

Next I created a basic HTML page with an image and then converted that same HTML page over to an .aspx page running in ASP.Net 4.0.  I ran tests on IIS 7.5 with .htm and .aspx files on a 32-bit application pool and a 64-bit application pool.  I ran the same tests on IIS8.  Here are the results of the memory used by the worker process:

IIS 7.5 IIS 8
.htm (32-bit) 4.5 MB 3.2 MB
.htm (64-bit) 6.0 MB 4.2 MB
.aspx (32-bit) 10.0 MB 8.0 MB
.aspx (64-bit) 12.7 MB 11.9 MB

So as you can see, IIS 8 does use less memory than previous versions of IIS no matter how you do the numbers even in the very simple tests that I ran.  A smaller footprint per application pool opens the door to higher densities on IIS servers or if you are running a smaller number of sites you can get by with less hardware.  This makes hosting your application on a cloud server even better than before.  No matter how you look at it, IIS 8 will allow you to host your web applications with an overall lower cost of ownership.

Rick is a Senior Support Lead at OrcsWeb, a hosted server company providing managed hosting solutions.