Reputation: 1650
I'm doing some scalability testing, particularly when it comes to the number of connections / requests that can be executed concurrently for a particular Web API call.
I created an API function which performs a Thread.Sleep(10000)
(Sleep for 10 seconds)
I'm making a call to the API using JMeter (a benchmarking platform http://jmeter.apache.org/) to execute 50 requests all at once on different threads.
Clearly, the 11th attempt to call the API is blocked until a thread / connection, etc. is freed up (or something similar).
I've confirmed that 10 is the magic number in my scenario because I changed my sleep time to 5000ms and I'm able to process 10 threads in 5 seconds, followed by another 10 threads in the next 5 seconds.
Why is this happening? What is imposing this limit I'm seeing here?
P.S. I've tried this with a fresh MVC project as well, same results with all brand new setup.
Upvotes: 2
Views: 3913
Reputation: 8137
IIS on Windows 8.1 Pro (Or Windows 7 Ultimate) has a limit of 10 simultaneous requests (3 for Windows 8.1 Basic).
Generally, if you try to run production workload, you should use Windows Server which doesn't have this limitation.
See this post for more details about the limitation.
Upvotes: 4