对Azure网站上的爬行CPU利用率进行故障排除

 卖火柴的萌小猪_966 发布于 2022-12-31 18:06

随着Azure网站上的负载增加(以及它正在进行的工作的复杂性),我们注意到我们遇到了CPU利用率问题.即使交通水平保持相当稳定,CPU利用率也会在几个小时内逐渐上升.随着时间的推移,如果Azure统计数据是正确的,我们将以某种方式设法为每个实例获得> 60秒的CPU(不太清楚它是如何工作的),并且响应时间将开始显着增加.

如果我重新启动Web服务器,CPU会立即掉线,然后开始慢速爬行.例如,在下图中,您可以看到CPU爬升,然后重新启动(使用红色圆圈),然后恢复CPU.

Azure网站CPU图

我非常倾向于怀疑这是我自己的代码中的某个问题,但我正在摸索如何解决这个问题.到目前为止,任何在我的开发或测试环境中重现这一点的尝试都被证明是无效的.几乎所有关于分析IIS/C#性能的建议似乎都假定直接访问相关机器或至少是"云服务"实例而不是Azure网站.

我知道这是一个很长的镜头,但是...任何建议,无论是它可能是什么,或如何解决它?

(我们使用C#5.0,.NET 4.5.1,ASP.NET MVC 5.2.0,WebAPI 2.2,EF 6.1.1,Azure系统总线,Azure SQL数据库,Azure redis缓存和每个重要代码路径的异步. )

编辑8/5/14 - 我尝试了下面的一些建议.但是当网站真正繁忙时,即大约100%的CPU利用率,任何下载小型转储或GC转储的尝试都会导致500错误,并显示消息"存储空间不足".我在不同时期能够下载一个小型转储或GC垃圾,他们还没有表现出什么特别有意思,至少,只要我能想出.(例如,GC转储中最有趣的事情是半打左右> 100KB字符串实例 - 这些实例似乎以某种方式与捆绑子系统相关联,因此我怀疑它们只是缓存ScriptBundleStyleBundle实例.)

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有