ASP.NET Core 2.2的CPU使用率很高

时间:2019-07-19 09:46:25

标签: azure asp.net-core cpu-usage process-explorer

因此,我已经在Azure(S2计划)上托管了asp.net core 2.2 Web服务。问题是我的应用程序有时会占用很高的CPU使用率(将近99%)。我现在所做的-在Azure上检查过进程浏览器。我看到有很多消耗CPU的进程。也许有人知道这些进程消耗CPU是否还可以? 目前,我不知道它们来自哪里。也许把它们放在这里很正常。

关于我的申请的简短内容: 目前,流量不大。一天500-600个请求。大多数请求用于通过查询记录,添加等与MS SQL进行通信。 同样,我正在使用MS Websocket,但是当没有WebSocket客户端连接到Web服务时,CPU占用率很高,因此我几乎不认为这是原因。我尝试使用apache ab进行负载测试,但是没有任何模式,在一个请求的负载测试之后,我会获得较高的CPU。因此有时会发生,有时不会在负载测试期间发生。

因此,我只更新了进程的屏幕截图,当流利的迁移器开始运行其日志记录时,我看到许多线程被锁定/使用。

更新* 我将从Configure方法中删除流利的migrator日志记录中间件。会期待的情况。 enter image description here

1 个答案:

答案 0 :(得分:1)

在这个阶段,我要说您需要分析您的应用程序,并弄清楚代码的哪些区域占用CPU资源。过去,我使用过dotTrace这个突出显示的方法,这对于调用树来说是最昂贵的。

一旦您知道代码库的哪些区域效率最低,就可以开始对其进行重构,以使它们更高效。这可能只是更改一些小操作,添加查询缓存或使用分布式锁定。

我相信其他DLL显示CPU使用率的原因是因为您的代码调用方法位于这些DLL中。