I have problems with the response time associated with the WebAPI solution in IIS. I generate the load using a simple JMeter test plan running on my development machine. My test plan repeats 15 static calls using 15 threads. The load is about 90 thousand requests in 7 minutes. The bandwidth is about 203 requests per second.
During a rise in flow, where JMeter increases the load, the response time begins to contain bursts that continue throughout the test. The machine and the application do not really break the sweat: the load on the processor is about 30-40%, so it is almost not saturated anywhere. The application did not return a single error during the entire test.
Application and machine features:
- The application is a .Net 4.6 WebAPI solution. The cache is in memory on the machine itself.
- Hosting on IIS 7.5, by car
4CPU /4GB RAM - Integrated Application Pool (.Net 4) using a single workflow
- The process model is configured to automatically configure the file
machine.config.
What I still tried to solve this problem:
- Eliminate the impact of the network and other infrastructure by running tests on different machines and locations. Even on the machine itself with a local host in calls.
- Increased the number of "ASP threads per processor limit" from 25 to 100 (maximum)
- Increase the number of workflows to 4
- Disable IIS Logging Completely
- Enable or disable dynamic content compression
Hope someone can point me in the right direction. Thank!