Asp.net请求在IIS中排队,即使流量很低,CPU使用率也很低(CPU:40%,:50req/sec,20个并发用户



我正在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个请求似乎是同时处理的。

我没有看到任何线程在同步后被阻塞或等待。那么,造成这种行为的原因是什么呢
默认的线程池配置?接下来我应该检查什么?

这是因为您的应用程序池只使用一个工作进程。您可以将"最大工作进程数"增加到一个以上你可以这样做选择您的应用程序池,单击"高级设置",查找最大工作进程数并更改数

最新更新