0

我试图通过将工作线程的最大数量限制为 1 并将多个请求发送到永远运行的 API 来故意使 http.sys 队列排队。

我已经阅读了多篇文章,其中我了解到 http.sys 将请求传递给 IIS 工作进程,该进程将请求传递给廉价的 CLR 线程。

我的理解是,我们能够通过修改 machine.config 来限制最大数量或工作线程和 IOCP 工作线程。我已将值设置为 1 并向具有 infit 循环的 api 发送 30 个请求,但我并没有真正注意到 HTTP 服务请求队列/当前队列大小性能计数器有所增加,有时 ASP.Net v4.0.30319/Requests Queued增加,但这不是我所期望的,http.sys 队列仅在我发送数百个请求时才排队。下面是我用来将 max worker 和 IO 线程设置为 1 的配置

<processModel maxWorkerThreads="1" maxIoThreads="1">

请注意,我正在执行本地请求,我的 IIS 版本为 10.0.14393.0 并使用 Windows Server 2016,因此不确定这是否与此相关。

我的机器截图 在此处输入图像描述

参考资料: https ://docs.microsoft.com/en-us/troubleshoot/aspnet/performance-call-web-service#cause https://www.codeproject.com/Articles/38501/Multi-Threading-in-ASP -NET-2#:~:text=在 %20the%20ASP.NET%20Worker 和 %20databases%2C%20 等内部。)。 https://blog.leansentry.com/all-about-iis-asp-net-request-queues/

谢谢并恭祝安康。

4

0 回答 0