并发请求仅限于.Net MVC / Web Api中的10个

时间:2015-03-23 22:59:39

标签: asp.net .net asp.net-mvc multithreading

我正在进行一些可伸缩性测试,尤其是涉及可以针对特定Web API调用同时执行的连接/请求的数量时。

我创建了一个执行Thread.Sleep(10000)(睡眠10秒)的API函数

我正在使用JMeter(基准平台http://jmeter.apache.org/)调用API,以便在不同的线程上同时执行50个请求。

  • 我的前10个到达网站的主题将在10秒后返回。
  • 在10多秒后再追加10个线程(现在返回20个)
  • 之后又增加了10个线程10秒钟后(现在返回30个)
  • 等。直到所有50人都回来了。

显然,第11次调用API的尝试被阻止,直到线程/连接等被释放(或类似的东西)。

我已经确认10是我方案中的神奇数字因为我将睡眠时间改为 5000ms 并且我能够处理 10 5 秒内的线程,接着是 5 秒内的另一个 10 线程。

为什么会这样?我在这里看到了什么限制了这个限制?

P.S。我已经尝试了一个新的MVC项目,所有全新设置的结果相同。

1 个答案:

答案 0 :(得分:3)

Windows 8.1 Pro(或Windows 7旗舰版)上的IIS限制为10个并发请求(Windows 8.1 Basic为3个)。

通常,如果您尝试运行生产工作负载,则应使用没有此限制的Windows Server。

有关限制的详细信息,请参阅this post