lit*_*rva 13 performance azure
我在 Azure 应用服务计划中有五个应用,所有相同应用的不同副本都适用于不同的客户端。它是一个带有 SQL 数据库的 ASP.NET MVC 应用程序。
今天早上我醒来发现网站缓慢且无响应,有时会导致 503 错误。在检查应用服务计划的 CPU/内存指标时,我发现 CPU 与 100% 挂钩:
各个站点的 CPU 时间图显示它们都在同一时间运行,尽管有些比其他站点更糟:
我尝试通过执行高级应用程序重新启动来解决该问题,但刀片无法加载 - 我认为是因为它试图从无法响应的服务器获取信息。
最后,我尝试一个一个地停止每个站点,这使 CPU 回到零,然后再次启动它们,这似乎解决了问题,但现在其中一些开始爬回。
几周前我遇到了类似的问题,并认为我的应用程序计划变得太大了,所以从 S1 升级到 S2,直到今天都很好。
我完全不知道如何找出这种 CPU 饥饿行为的原因。谁能指出我如何开始诊断的正确方向?
小智 6
我们遇到过几次这个问题,每次都被证明是失控的 GC(垃圾收集)。很难证明和诊断,但我最终做的是使用 kudo (scm) 站点,单击工具 => 支持(这会将您带到应用程序的支持站点。
从这里你选择你的目录(如果你有几个)和站点,点击分析 => 指标,然后点击诊断按钮(注意这已经改变了,所以这些步骤可以随时改变),然后回到分析 => Dianotics,你'最终会得到一个内存转储=>“分析状态”报告。这应该是一个mht文件(你可以在可恶的浏览器IE或Edge中打开),然后搜索关键字“gc”。
你会发现一些有趣的调用堆栈帧,其中引用了诸如“GCFrame”之类的东西,或者更有趣的是调用“System.Threading.WaitHandle.WaitMultiple”,如果你得到太多这些,你的系统可能会遇到垃圾收集问题.
如何解决这个问题......这是许多其他主题中涵盖的主题,因为这就像问“我如何生活在一个仍在使用 IE 6 的世界中?”......
您最好的选择是为此特定应用程序安装 New Relic 或 Application Insights。可以通过应用服务->工具->性能监控轻松安装。这将使您详细了解服务器端和客户端发生的情况。
归档时间: |
|
查看次数: |
26055 次 |
最近记录: |