【问题标题】:asp net core kestrel high cpu usageasp net core kestrel cpu使用率高
【发布时间】:2021-08-19 07:08:32
【问题描述】:

我在 .Net5 + Kestrel 中有一些 Web Api 应用程序,我想测试可以处理的最大请求。 当我将请求数量从低到高(例如,从 10 个同时请求增加到 50 个,然后是 100 个,最后是 500 个)时,程序没有问题,可以在 5 秒内异步回答 500 个请求。 但是过了一段时间(比如10分钟)我再次向服务器发送500个请求时,CPU消耗达到100%,程序没有响应,我必须重新启动程序才能解决响应问题。

我应该如何解决这个问题?

【问题讨论】:

    标签: asp.net-web-api cpu-usage .net-5 kestrel


    【解决方案1】:

    在调试程序并使用dotTrace程序后,我意识到当我想在服务中创建一个httpConnection时,我会在使用后将那个值处理掉,当服务器上的请求量增加时,动作创建和删除 httpConnecton ,给服务器带来很多开销。

    希望对大家有所帮助

    我知道这类问题的解决方案是使用 IHttpClientFactory。 但是因为我使用 EurekaServiceDiscovery 并且我应该创建一个 DiscoveryHttpClientHandler 并将其传递给 HttpClient Constructor。我不能做这样的事情。那么解决办法是什么

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-09
      • 2014-07-16
      相关资源
      最近更新 更多