ASP.NET Performance – Windows Update – a great example for setting performance standards

Much as people love hearing on  the new features of ASP.NET, one of the frequent requests that I receive is around performance counters, high transactional sites using ASP.NET and real world applications that do very well on ASP.NET.  While there are thousands of sites out there running on ASP.NET, many of them being mission critical, our own Windows Update is a great example of high performance.

Windows Update is something all of us use, whether we like it or not.  It helps maintain your system up to date with critical patches, recommended downloads as well as optional add-ins.  Windows Update also periodically provides major updates such as Service Pack for Windows Vista, Office etc., and it is an essential part of your Windows usage.

How does Windows Update cater to a huge use base of an operating system such as Windows and maintains all the transactions / requests for downloads.  Well, the facts, also available in Wikipedia, is as below:-

As of 2008, Windows Update has about 500 million clients, processes about 350 million unique scans per day, and maintains an average of 1.5 million simultaneous connections to client machines.  On Patch Tuesday, the day Microsoft typically releases new software updates, outbound traffic can exceed 500 gigabits per second. Approximately 90% of all clients use automatic updates to initiate software updates, with the remaining 10% using the Windows Update web site. The web site is built using ASP.NET, and processes an average of 60,000 page requests per second.

I think that is quite a huge number of requests per second and to maintain that using IIS, SQL Server as well as Windows Server, it really requires platform stability and performance.

Another great example of performance is our own www.microsoft.com group portal which caters to millions of requests per second on a day to day basis.

Note: The facts and figures are as gathered by me from wikipedia and various other resources and must be used for information purposes only.  The opinions are solely mine and do not reflect those of my employer in any way.

Update: Since quite a few folks pointed out, I wanted to also add that "Just as in Cricket, where you cannot set fielding for Bad Bowling, no technology can help bad coding/design.  It is implied although worth mentioning that best practices, reviews and performance tuning can help improve performance of your application"

Cheers !

Print | posted on Monday, July 27, 2009 5:10 AM

Comments on this post

# re: ASP.NET Performance – Windows Update – a great example for setting performance standards

Requesting Gravatar...
Thats some good statistics....
Left by vikram on Jul 27, 2009 6:30 AM

# re: ASP.NET Performance – Windows Update – a great example for setting performance standards

Requesting Gravatar...
Hi,

Very nice survey. So the only factor I can notice is the way the things are handled. If we do proper coding and handle things perfectly there will be no wreckage .

Thanks,
Thani
Left by Thanigainathan.S on Jul 27, 2009 7:21 AM

# re: ASP.NET Performance – Windows Update – a great example for setting performance standards

Requesting Gravatar...
The link to the Microsoft site is wrong. You missed the "t".
Left by Istomesmo.com on Jul 27, 2009 9:08 AM

# re: ASP.NET Performance – Windows Update – a great example for setting performance standards

Requesting Gravatar...
Thani, I used to do performance analysis for a Fortune 500 company, and frankly, the only ASP.NET sites that had poor performance were those that were very badly written, as though the developer didn't have a clue what they were doing, or any knowledge of what is slow vs. what is fast. Too often, developers just want to get their paycheck, and don't take the time to do things the right way. All technologies are slow when that happens. Hence the need for group code review. (It's the potential for embarrassment that keeps developers doing things the right way. Sad, but true.) So, the statement, "if we do things perfectly" applies to all systems, not just ASP.NET.

This survey just demonstrates that it is a myth that ASP.NET does not scale well. Web applications in general will almost always scale, if they are built according to best practices.

The real question is, what is the cost of setting up and maintaining that system vs. the cost of setting up and maintaining say, a Java based system doing the same tasks with the same response rate? My bet is that ASP.NET is more expensive to initially develop and set up (licensing, etc.), but has a much lower ongoing maintenance cost. In other words, year 1 cost is more for ASP.NET, but year 2 and 3 cost is less.
Left by Craig on Jul 27, 2009 9:10 AM

# re: ASP.NET Performance – Windows Update – a great example for setting performance standards

Requesting Gravatar...
@Craig Well said about doing it the right way v/s getting it done somehow. Performance of a web application is not a simple factor of technology it is built on, but also depends on other parameters like optimized codin, good patterns & practices, muscle in your server(s), bandwith, data volume, data storing techniques, data access technoques, and lot more data related ones, and more ...
I personally manage very well performing to not so well performing web applications...in any enterprise, this depends on lots of external factors too. Not any one application stands alone and serves the user, but interacts with one or more external apps, legacy systems, etc that add to performance equation too...

In short we need to performance tune our apps, one application at a time (even after you follow the best practices, scalable application infrastructers and technologies)
Left by Binu Thayamkery on Jul 27, 2009 11:13 AM

# re: ASP.NET Performance – Windows Update – a great example for setting performance standards

Requesting Gravatar...
But the statistics did not mention anything about the hardware. Handling million pages on one server or 100 server makes a lot of difference. Can u tell me how many web servers,DB servers are behind the scenes?
Left by Kumar on Jul 27, 2009 1:16 PM

# re: ASP.NET Performance – Windows Update – a great example for setting performance standards

Requesting Gravatar...
How funny... asp.net site itself is very slow, forum especially :)
Left by Milan on Jul 28, 2009 4:43 PM

# re

Requesting Gravatar...
60,000 ? How many servers does the update server has?
I once implement a update server on a normal PC, with some logical rules, it only about 200 pages pre second
Left by Jack Niu on Jul 29, 2009 12:13 AM

# re: ASP.NET Performance – Windows Update – a great example for setting performance standards

Requesting Gravatar...
whut happun to blog post with vid on graytust indian chennai developer summit on aspnets ajaxs? it was really useful to me and now itz gone. plz put back up ASAP or send to mi email id naleemandscurvy@yahoo.co.in. url was http://geekswithblogs.net/ranganh/archive/2009/07/29/asp.net-ajax-ajax-control-toolkit-amp-jquery-ndash-gids-session.aspx but now pages no foundz.
Left by Naleem and Scurvy on Jul 30, 2009 11:06 AM

# re: ASP.NET Performance – Windows Update – a great example for setting performance standards

Requesting Gravatar...
"As of 2008, Windows Update has about 500 million clients"

THAT IS SO RIDICULAS! lol - their servers must be monumental.
Left by used macbooks on Aug 04, 2009 5:42 AM

# # re: ASP.NET Performance – Windows Update – a great example for setting performance standards

Requesting Gravatar...
Web applications in general will almost always scale, if they are built according to best practices.
Left by Lasek leikkaus on May 02, 2010 4:22 AM

Your comment:

 (will show your gravatar)