views:

813

answers:

3

I have a reoccurring issue where a customer calls up and complains that the web site is too slow. Specifically, if they are inactive for a short period of time, then go back to the site, there will be a minute-two minute delay before the user sees a response. (the standard browser is Firefox in this case)

I have Perfmon up and running, the cpu utilization is usually below 20% (single proc...don't ask). The database is humming along. And I'm pulling my hair out.

So, what metrics/tools do you find useful when evaluating IIS performance?

+9  A: 

For your particular case, you need to increase the idle-timeout option in IIS because that delay is due to ASP.NET loading the binaries and starting your application. The default is 20 minutes, so if nobody accesses the site for 20 minutes, IIS will shut down the process and the next request will take a long time to start up.

Jesse Weigert
Do you have a recommendation for what to set the value to?I changed mine to 60 minutes as a starter.
Chris Brandsma
It depends on how much traffic your site receives. I would say set if you are receiving < 100 visitors/day it should be about 24hrs. This way if you don't receive any traffic in the off peak time your site will still be responsive the next day.
Alex
@Chris you normally don't want it to timeout at all if you're running your own server and there isn't much else on the box. You always want your site to be snappy right?
Todd Smith
I suggest setting the timeout to 1440 (one full day)
hamlin11
+2  A: 

Maybe the application pool is shutting down when there is a period of inactivity? The application pool would take some time to start back up.

1800 INFORMATION
+15  A: 

Hope this helps:
Best Practices for Speeding Up Your Web Site
Scaling Strategies for ASP.NET Applications
IIS Tuning
14 Rules for Faster-Loading Web Sites
Best practices for creating websites in IIS 6.0
Stanford Computer Cience - High Performance Web Sites
10 Tips for Writing High-Performance Web Applications
Writing High-Performance Managed Applications : A Primer
Nine tips for a healthy "in production" ASP.NET application
Speedy C#, Part 2: Optimizing Memory Allocations - Pooling and Reusing Objects
Memory Usage Auditing For .NET Applications
Troubleshooting HTTP Compression in IIS 6.0
Maximizing IIS Performance - 25 tips
Overview – What Problem Does IIS Compression Solve?(step-by-step)
Optimizing IIS 6.0 Performance
Page Speed - an open-source Firefox/Firebug Add-on
Performance Testing Guidance for Web Applications
Top 10 Performance Improvements in IIS 7.0
CHAPTER 6 Optimizing IIS 6.0 Performance
Performance Tuning Guidelines for Windows Server 2003 - Performance Tuning for IIS 6.0
ASP.NET Performance Tips
IIS 6.0 Tuning for Performance - by Peter A. Bromberg, Ph.D.
Improving .NET Application Performance and Scalability - by MS
Optimizing and Performance Tuning IIS 6.0
12 Steps To Faster Web Pages With Visual Round Trip Analyzer

Great improvements tips :
Running ASMX Web Services on STA Threads
Scale Net

Measure, measure, measure :
Load Test Your Site
Show Slow

See what the best sites did :
Benchmarks
TOP 100

More resource :
Learn papers

My experience says:
- Enable compression (GZIP/Deflate) in IIS, for Static data. Simple to implement and with excellent results.
- if cpu is not your problem try to enable compression for dynamic data as well.

lsalamon
ok lots of links is good, but what about some advice based on *your* experience, too?
Jeff Atwood
My experience says: Evaluate each case and apply that brings results. I am giving the options.
lsalamon