IIS Web 服务器和线程池问题

Posted

技术标签:

【中文标题】IIS Web 服务器和线程池问题【英文标题】:IIS web server and thread pool issues 【发布时间】:2019-09-05 22:27:59 【问题描述】:

问题是相关的 ASP.NET 4.0 和基于 IIS 的 Azure 云服务:

    需要知道正确的 IOCP 线程数,以便为我们进行 10-20K/秒远程调用的生产 Web 服务设置

    还需要知道为生产 Web 服务设置的正确工作线程数...特别是处理 10-20K/秒的 API 调用...特别是突发事件

    基本上,我面临的问题是,我的每个云服务 VM 应处理 10-20K 请求/秒,但由于线程池问题 w.r.t,它无法这样做。 asp.net

    我的 prod 服务只从 redis 获取数据并简单地返回

【问题讨论】:

抱歉,如果没有更多信息,这是一个很难回答的问题:当前性能,调用的性质是什么(请求的大小和典型的响应,任何身份验证的负担如何)你在做什么,等等),服务消耗了多少内存,分配了多少,分配了多少核心,服务是否启动了额外的线程,服务中是否有任何阻塞调用,等等。我认为最好的答案是检查服务代码的效率并测试不同的配置并找出导致特定设置瓶颈的原因。 性能调优需要对您的代码库和生产设置进行全面分析。通过support.microsoft.com聘请顾问或打开支持案例。 可以说,没有内存限制,没有身份验证,请求响应大小(如果非常小),4 核机器,没有其他服务调用 另外,正如我所说,这是一个普通的 REST API,它调用redis 并将获取的数据发回。 【参考方案1】:

假设代码高效并且有足够的硬件,即没有与内存、cpu 和 n/w 相关的问题: 1.您应该尽量将 IOCP 保持在 50-100 的最小数字 2.你应该尽量保持CPU线程高来处理请求的爆发

我不确定保持 2-5K 活动线程以满足 10-20K 请求/秒是否是个好主意

【讨论】:

以上是关于IIS Web 服务器和线程池问题的主要内容,如果未能解决你的问题,请参考以下文章

IIS连接数IIS并发连接数IIS最大并发工作线程数应用程序池的队列长度应用程序池的

你真的了解:IIS连接数IIS并发连接数IIS最大并发工作线程数应用程序池的队列长度应用程序池的...

java web线程池

Java 线程池原理分析

Java Web应用中调优线程池的重要性

Java Web应用中调优线程池的重要性