Additionaly to the infamous slow-start problem, which occurrs in ASP.NET application running on IIS, we experience another one.
After a fresh application start (e.g. iisreset) the first request takes some time as usual. However in the current application every other request to a page that hasn't been loaded yet takes about 10-12 second on the first hit!
After the page has loaded, all other requests to the same resource are fast again (80-130 ms usually). This is also true for first loads from other client machines, so this is not a client-caching problem.
For example:
Machine | Request | Duration |
A | GET / | 43000 ms | (wakeup)
A | GET / | 90 ms |
B | GET / | 90 ms |
A | GET /registration | 12000 ms |
A | GET /registration | 110 ms |
A | GET /registration | 110 ms |
A | GET /registration | 110 ms |
A | GET /foobar | 11000 ms |
A | GET /foobar | 85 ms |
B | GET /baz | 10000 ms |
A | GET /baz | 100 ms |
The interesting thing is that this doesn't happen when we run the application on our DEV machines (debug=true, etc). Only when we publish the website (debug=false, precompile, etc) this behaviour occurrs.
All static resources are bundled and cached properly and there is not one request that may take more than 1 second really. The application pool and the website are configured to start automatically and run forver.
I would greatly appreciate any hint.