我正在进行一些可伸缩性测试,尤其是涉及可以针对特定Web API调用同时执行的连接/请求的数量时。
我创建了一个执行Thread.Sleep(10000)
(睡眠10秒)的API函数
我正在使用JMeter(基准平台http://jmeter.apache.org/)调用API,以便在不同的线程上同时执行50个请求。
显然,第11次调用API的尝试被阻止,直到线程/连接等被释放(或类似的东西)。
我已经确认10是我方案中的神奇数字因为我将睡眠时间改为 5000ms 并且我能够处理 10 5 秒内的线程,接着是 5 秒内的另一个 10 线程。
为什么会这样?我在这里看到了什么限制了这个限制?
P.S。我已经尝试了一个新的MVC项目,所有全新设置的结果相同。
答案 0 :(得分:3)
Windows 8.1 Pro(或Windows 7旗舰版)上的IIS限制为10个并发请求(Windows 8.1 Basic为3个)。
通常,如果您尝试运行生产工作负载,则应使用没有此限制的Windows Server。
有关限制的详细信息,请参阅this post。