我正在Asp.Net WebApi(在Windows 2019服务器/8CPU核心上带有IIS 10的.Net 4.7.2(上进行一些压力测试,我观察到即使流量很低,大多数请求似乎也在排队。api的平均响应时间为300毫秒。以下是我在debudiag:中看到的http请求
HttpContext Report
HttpContext Timeout Completed RunningSince ThreadId ReturnCode Verb RequestPath+QueryString
65ac4d8 110 Sec Yes --- 200 POST /WS_TEST/Orders/Aborted
65aea9c 110 Sec Yes --- 200 POST /WS_TEST/Orders/Aborted
66bf520 110 Sec Yes --- 200 POST /WS_TEST/Orders/Aborted
6b256ec 110 Sec No 2 Sec 56 200 POST /WS_TEST/Orders/Aborted
8506498 110 Sec Yes --- 200 POST /WS_TEST/Orders/Aborted
a5b81ec 110 Sec Yes --- 200 POST /WS_TEST/Orders/Aborted
a752e98 110 Sec Yes --- 200 POST /WS_TEST/Orders/Aborted
c64d35c 110 Sec Yes --- 200 POST /WS_TEST/Orders/Aborted
c843028 110 Sec Yes --- 200 POST /WS_TEST/Orders/Aborted
e562f54 110 Sec Yes --- 200 POST /WS_TEST/Orders/Aborted
e901974 110 Sec Yes --- 200 POST /WS_TEST/Orders/Aborted
108cc6fc 110 Sec Yes --- 200 POST /WS_TEST/Orders/Aborted
126159c4 110 Sec Yes --- 200 POST /WS_TEST/Orders/Aborted
12c08d94 110 Sec No 2 Sec 61 200 POST /WS_TEST/Orders/Aborted
1464e364 110 Sec Yes --- 200 POST /WS_TEST/Orders/Aborted
147b4488 110 Sec No 2 Sec 41 200 POST /WS_TEST/Orders/Aborted
以下是windgg给我的线程池统计数据:
0:000> !threadpool
CPU utilization: 48%
Worker Thread: Total: 27 Running: 6 Idle: 17 MaxLimit: 8191 MinLimit: 8
Work Request in Queue: 0
在我的负载测试中,我有一个客户端,它有20个线程,在一个循环中总是运行相同的请求,所以我希望看到CPU做更多的工作,因为应该总是有20个请求挂起(我的客户端脚本中没有暂停(。但事实似乎并非如此。。在分析了很多转储之后,我注意到一件奇怪的事情:我只看到在任何时候,最多3到5个请求似乎是同时处理的。
我没有看到任何线程在同步后被阻塞或等待。那么,造成这种行为的原因是什么呢
默认的线程池配置?接下来我应该检查什么?
这是因为您的应用程序池只使用一个工作进程。您可以将"最大工作进程数"增加到一个以上你可以这样做选择您的应用程序池,单击"高级设置",查找最大工作进程数并更改数