I have an ASP.NET MVC 4 site running on a Xeon E7540 @ 2 GHz 2 Cores, 8 GB Ram on a 64-bit Windows Server 2008 R2 Standard.
The application pool is using .NET 4.0 with Integrated Managed Pipeline Mode.
I've decorated my Index function with OutputCaching:
[OutputCache(CacheProfile = "ContentPageController.Index")]
and the following in the Web.config
<add name="ContentPageController.Index" duration="60" varyByParam="none" location="Server" />
The index action access a MS SQL database, I have SQL Profiler running on the DB server and I can see that if I refresh the same page from a browser within a 60 seconds period, the database is hit only once which indicates that the OutputCache is running.
However when I load test the site generating a rush of 1-50 users within 60 seconds (graph attached) the OutputCache fails to work almost immediately after the test starts, I can see in the SQL Profiler the queries hitting the database while I would have expected only the first request to hit the database.
About 15 seconds into the test the Webserver CPU started fluctuating between 85% and 100%, while the Private Memory of the worker process did not increase, staying below the 149MB mark having started at 147MB before the test.
I'm completely clueless, any idea what I should be looking for?
Many thanks!