Since the number of requests per day is about 5 million records, and growing,
I would suggest the following:
Client Side
Get Fiddler and get the readings of the number of requests per page and their turn around time. Do this for, first request and Consecutive requests. You should ideally sample the data for 5 first requests and 5 consecutive requests before sampling the data and drawing conclusions from it.
The parameters to read from it are:
- How many requests per page are
happening ?
- How many of them can be
cached ?
- The bottleneck resources ?
Server Side
To identify server side turn aroud time, I would suggest Ayendes, Rhino.HttpModule or someting, i don't remember exactly. It gives the turnaround time of a page at the server side.
The parameters to read from it are:
- Is it a server side Issue or a Client Side Issue ?
After this, you should be in a clear position as to whether it is a client side issue or a server side issue. Having doen that, then you can concentrate on the parameters.
On last note, I think you can do away with any changes to your code. Because, you are suggesting that under load, the turnaround time is around 10 seconds. See, the browser cannot request more than 6(+/- 2) resources at a time. So, something under load is loading your web server. Simulate the situation and see the request count, Team Foundation System, should help. Also, IIS reports , might provide the requests on the server side. Have a look at them. They might give you a clear picture.
Hope this would help.