gpt4 book ai didi

azure - ASP.NET Core 2.2 遇到高 CPU 使用率

转载 作者:行者123 更新时间:2023-12-03 01:02:40 26 4
gpt4 key购买 nike

所以我在Azure上托管了asp.net core 2.2 Web服务(S2计划)。问题是我的应用程序有时 CPU 使用率很高(几乎 99%)。我现在所做的 - 检查了 azure 上的进程资源管理器。我看到有很多进程正在消耗CPU。也许有人知道这些进程消耗CPU是否可以?目前,我不知道它们来自哪里。也许他们在这里很正常。

简单介绍一下我的申请:目前,车流量并不大。一天500-600个请求。大多数请求用于与MS SQL进行通信,通过查询记录、添加等方式进行。我也使用 MS Websocket,但是当没有 WebSocket 客户端连接到 Web 服务时,CPU 会很高,所以我几乎不相信这是一个原因。我尝试使用 apache ab 进行负载测试,但没有任何模式,在一个请求的负载测试之后,我会获得高 CPU 率。所以在负载测试期间有时会发生,有时不会。

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

更新*我将从配置方法中删除流畅的迁移器日志记录中间件。将展望情况。 enter image description here

更新**

所以我删除了 FluentMigrator 的日志记录。到目前为止,我还没有注意到任何 CPU 使用率超过 90%。

但我还是很困惑。我的 CPU 使用率一直在旋转。它是否是健康的 CPU 使用率图表?另外,我尝试在 websocket 服务器上进行负载测试。我编写了一个脚本,每 100 毫秒从 6-7 个客户端调用 WebSocket 的一些函数。因此,每 100 毫秒就会有 7 次来自不同客户端的 WebSocket 服务器调用,每个函数本身都会查询一些数据/插入(每个 WebSocket 函数大约有 3-4 次查询)。

我注意到,在 Azure S1 DTU 20 上,2 分钟后我就退出了 SQL 池连接,如果我将 DTU 增加到 100,它可以正确处理 7 个客户端,而不会出现任何“无连接池”错误。那么第一个问题:这是正常的CPU旋转吗?第二:在 DTU 10 Azure SQL 上使用这种负载测试时,我是否应该收到“无 SQL 连接免费”的错误消息。我担心在单例 WebSocket 服务上创建范围服务时会泄漏连接。这个话题太长了,也许我应该把它转移到一个新话题? enter image description here

-

最佳答案

在这个阶段,我想说您需要分析您的应用程序并找出代码的哪些区域是 CPU 密集型的。过去我用过dotTrace ,这突出显示了调用树中最昂贵的方法。

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

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

关于azure - ASP.NET Core 2.2 遇到高 CPU 使用率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57109832/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com