I have a site that receives 5 million request per day. On heavy days, the pages take about 10 seconds to return. I also get out of memory exceptions. I\'ve been reading the Impr
On the KPI:
Some already mentioned it in the other answers. I don't remember the actual counter names but in general: Requests Per Second (Web) % Processor (Web & SQL) Memory GC (large heap, Generation 0, 1, 2) Cache Hit Ratio for your SQL Server Disk Queue Length (Web & more importantly your SQL) any counter related to blocking and deadlock in SQL
On getting answer to your questions above:
Going through performance monitor won't really tell you the answer to your question. You might want to some web load testing since I guarantee your application will behave differently under load if you don't test for it.
Tools you want to try get familiar with to answer those questions are: .NET Profiler (to profile your ASP.NET code) .NET CLR Profiler (to profile the memory usage)
But still, create web tests first (you can easily do this w/ Fiddler for a start) and customized it further (to be able to do data binding) w/ VS and run load test w/ close to real data representation (in capacity) and number of users. From the web tests you should be able to tell which page are underperforming. Then drill down deeper with the profilers to find out why.
You are already in the right track looking at ScaleNet.pdf (or the online version). It's a bit dated, but it's still valid. Keep reading and applying things you read in there.