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

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

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

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

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

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

【问题讨论】:

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

标签: c# asp.net .net threadpool


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2013-11-15
    • 1970-01-01
    • 2018-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-05
    • 2021-10-23
    相关资源
    最近更新 更多