Question

I have uploaded the WCAT results run on windows 7, same script, to ts: included XSL in zip. sorry.

Here is what I have noticed:

  1. IIS Express has slighter higher requests per second, and total transactions served than normal IIS.
  2. IIS Express is executing up to 100 requests at a time, while normal IIS on windows 7 is limited to 10 as designed.
  3. IIS express is using 30% higher cpu, probably because of additional requests it handles at a time.
  4. But on average Express requests take much longer to complete..up to 4 times longer. see Request Execution Time performance counter and time analysis (first and last byte).

IIS Express is only able to beat IIS in total requests served because it can handle more requests at a time!

Theories on what's happening:

  1. Could the fact that IIS express is printing each request to command line window even with trace set none be slowing it down?
  2. I also noticed a lot of additional modules registered in IIS express applicationhost.config that are not in IIS applicationhost.config. Could then extra debugging/tracing modules be causing the problem?
  3. I notice IIS express does not have FileCache and HTTPCache modules. Could that be why?

I'm hoping asp.net experts can clarify how these results are possible if IIS express is not limited.

Was it helpful?

Solution

By default failed request tracing is enabled for IIS Express. You may see some performance gain if you disable it. (set enabled="false" for traceFailedRequestsLogging element in applicationhost.config)

OTHER TIPS

Connecting the dots: http://forums.iis.net/p/1175052/1969390.aspx#1969390. Same question was asked on the iis.net forum as well, and it trigerred lively discussion.

Just to clarify, the IIS Express is primarily meant as a web development tool that provides a superset of functionality over the Cassini development server. Performance was not top priority for this release. It is true that IIS Express doesn't have connection limit, but the XP compatibility came at cost.

  • For the applications with mostly dynamic content, the overhead of IIS express should be acceptable.
  • for websites with lot of static content, the lack of http.sys kernel caching and also user mode caching will make a huge perf difference

Try to redirect the stdout to nul. It will boost your perf by a little bit.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top