Click here to Skip to main content
Click here to Skip to main content

4 steps to increase bandwidth performance for ASPX pages on IIS 6.0

By , 7 Sep 2009
 

4 steps to increase bandwidth performance for ASPX pages on IIS 6.0

This article is a warm up for…

Introduction and warning

Do not jump to a conclusion

Step 1:- Enable compression

Step 2:- Enable metabase.xml edit

Step 3:- Set the compression level and extension types

Step 4:- Does it really work?




 

This article is a warm up for…
 

This article is a warm up for my 4th article on .NET best practices. The 4th article was coming out to be too big to accommodate everything. So I have broken down the same in to 2 pieces, this article will show the basic steps needed for that article and the main article will talk in depth about the best practice. In case you have not read my previous articles on best practices below are some links.

.NET best practice 1:- In this article we discuss about how we can find high memory consumption areas in .NET. You can read about the same at DOTNET1.aspx 

.NET best practice 2:- In this article we discuss how we can improve performance using finalize / dispose pattern.
DONETBestPracticeNo2.aspx 

.NET best practice 3:- How can we use performance counters to gather performance data from .NET applications DOTNETBestPractices3.aspx 
 

Introduction and warning
 

In this article we will try to understand how to enable compression on IIS 6.0. Once we have enabled compression we will use fiddler to see how bandwidth performance increases due to the same.

Please feel free to download my free 500 question and answer eBook which covers .NET , ASP.NET , SQL Server , WCF , WPF , WWF@ http://www.questpond.com .
 

Do not jump to a conclusion

 

As I have clearly mentioned this article will form the base for my 4th article on .NET best practices. So please do not jump to a conclusion and enable IIS compression on production servers. There are issues of CPU performance, compression levels and browser compatibility due to IIS compression enablement. I will be talking about those details later. For now we will just concentrate on how to enable IIS compression and how does it increase bandwidth performance.
 

Step 1:- Enable compression
 

The first step is to enable compression on IIS. So right click on websites  properties and click on the service tab. To enable compression we need to check the below two text boxes from the service tab of IIS website properties. Below figure shows the location of both the checkboxes.
 

Step 2:- Enable metabase.xml edit
 

Metadata for IIS comes from ‘Metabase.xml’ which is located at “%windir%\system32\inetsrv\”. In order that compression works properly we need to make some changes to this XML file. In order to make changes to this XML file we need to direct IIS to gives us edit rights. So right click on your IIS server root  go to properties and check ‘enable direct metabase edit’ check box as shown in the below figure.
 

Step 3:- Set the compression level and extension types
 

Next step is to set the compression levels and extension types. Compression level can be defined between 0 to 10, where 0 specifies a mild compression and 10 specifies the highest level of compression. This value is specified using ‘HcDynamicCompressionLevel’ property. There are two types of compression algorithms ‘deflate’ and ‘gzip’. This property needs to be specified in both the algorithm as shown in the below figures.
 

 

We need to also specify which file types need to be compressed. ‘HcScriptFileExtensions’ help us to specify the same. For the current scenario we specified that we need to compress ASPX outputs before they are sent to the end browser.
 

Step 4:- Does it really work?
 

Once you are done with the above 4 steps, it’s time to see if the compression really works. So we will create a simple C# asp.net page which will loop “10000” times and send some kind of output to the browser.
 

protected void Page_Load(object sender, EventArgs e)
{
for (int i; i < 10000; i++)
{

Response.Write("Sending huge data" + "<br>");
}
}

 

In order to see the difference before compression and after compression we will run the fiddler tool as we run our ASP.NET loop page. You can download fiddler from http://www.fiddler2.com/fiddler2/version.asp  .

Below screen shows data captured by fiddler without compression and with compression. Without compression data is “80501 bytes” and with compression it comes to “629 bytes”. I am sure that’s a great performance increase from bandwidth point of view.
 

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

Shivprasad koirala
Architect http://www.questpond.com
India India
Member

I am a Microsoft MVP for ASP/ASP.NET and currently a CEO of a small
E-learning company in India. We are very much active in making training videos ,
writing books and corporate trainings. Do visit my site for 
.NET, C# , design pattern , WCF , Silverlight
, LINQ , ASP.NET , ADO.NET , Sharepoint , UML , SQL Server  training 
and Interview questions and answers


Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board.
Search this forum  
    Spacing  Noise  Layout  Per page   
GeneralCompression does not always enhance performancememberjerchap18 Sep '09 - 10:31 
You seem to be using final data size as your indicator for performance, which I don't think is quite correct. The real indicator for performance is how many requests IIS can fill in a given time (requests per second). In some cases enabling compression can actually reduce performance even though you're making more efficient use of bandwidth because it takes longer to compress than it would have to just serve up the uncompressed data - thereby actually reducing IIS performance.
GeneralRecycledmemberArciI14 Sep '09 - 21:36 
This article was posted on http://www.dotnetfunda.com/articles/article553-4-steps-to-increase-bandwidth-performance-for-aspx-pages-on-iis-60.aspx[^] by same author.
GeneralRe: RecycledmemberShivprasad koirala15 Sep '09 - 2:06 
yes sir , i did post , does it matter as per codeproject guidelines.
 
Visit my 500 videos on WCF,WPF,WWF,Silverlight,UML design patters @ http://www.questpond.com

GeneralMy vote of 1memberJames Luterek8 Sep '09 - 4:01 
Misleading title.
GeneralMy vote of 1memberSeishin#8 Sep '09 - 2:23 
nothing new and misleading title
GeneralNicememberkrishvedula7 Sep '09 - 8:50 
Liked the final comparison data
GeneralMy vote of 2memberpooya_p7 Sep '09 - 2:15 
this article only speaks about turning on compression
GeneralRe: My vote of 2memberShivprasad koirala7 Sep '09 - 2:31 
At the end i have shown the comparison metrics also.
 
Visit my 500 videos on WCF,WPF,WWF,Silverlight,UML design patters @ http://www.questpond.com

GeneralRe: My vote of 2memberJohn Brett7 Sep '09 - 5:02 
I think you have to be very careful about what data you present wrt compression.
Your example is using content that is particularly suitable to be compressed, and may not fairly represent a real-world scenario.
 
I was expecting a discourse on the mechanisms and importance of running profiling on representative data - that would have made this a great article, IMHO.
 
John
GeneralRe: My vote of 2memberSteven Berkovitz7 Sep '09 - 6:01 
I would agree with the original poster - perhaps the issue is just that the title is misleadig. You really only present 1 method of improving performance, just broken down into 4 steps.
 
There are also plenty of other articles and blog posts around showing the exact same steps.
 
-Steven

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Permalink | Advertise | Privacy | Mobile
Web04 | 2.6.130523.1 | Last Updated 7 Sep 2009
Article Copyright 2009 by Shivprasad koirala
Everything else Copyright © CodeProject, 1999-2013
Terms of Use
Layout: fixed | fluid