IIS 7 performance issues for static page requests
I need help scaling up the performance of an IIS webserver. My simple tests indicate that I am unable to scale up the response time even for serving static HTML pages.
Details as below:
I have a static HTML page of size about 20 KB getting serv开发者_运维技巧ed from IIS 7 with its default configurations. I am performing a load test on this static page using the Microsoft VSTS 2008 Test Suite.
Following are the load test configurations:
- Constant Load Pattern of 5000 users
- Load test duration of 5 minutes
- Percentage of new users: 100 (in order to treat every user as new and to not use caching)
- Web Test Connection Model: Connection per user
Configuration of the server that hosts the HTML page:
- 8 GB RAM
- 8 core Intel Xeon Processor (X 2)
- Windows Server 2008 R2 Enterprise edition operating System
- IIS 7
Results:
Requests / Second Minimum Average Maximum 130 310 540
Response Time (seconds) Minimum Average Maximum 0.51 9.76 18.71
These seem to be very low numbers, as it indicates that for a constant load of 5000 users, on an average, the users would have to wait for almost 10 seconds to get the response. What could possibly be contributing to this reduction in performance?
I would look at the server loading your server. With 5000 virtual users hitting a static html page, it's CPU must be maxed out, meaning that you are getting waits on CPU for all tasks including getting timing data. When the test is running "hot" like this you are not going to get very meaningful results.
My experience with static html is that IIS 7 is very good at optimising for this type of load and in practice you bottleneck will be with the bandwidth to your service provider.
Try using a test the gradually adds virtual users, starting at 100 or so and going up. Keep track of your test servers CPU and check the results when before maxes out. That will give you a good idea of how many of these static pages you can push out.
A simpler calculation is that once you get to 75% or so of external bandwidth you are going to get exponentially increasing response times for some of your requests (most go through sub second).
In fact, based on your numbers I could make a guess that you have a 100Mb/s network between the two machines, which could be the bottleneck.
精彩评论