我在7月份部署了一个Azure网络应用程序,它在大约三周前一直运行良好。那时,我会注意到我的CPU利用率一直在80%到100%之间,没有相应的流量增加。我第一次看到这个,在得出结论不是我的应用程序或流量增加导致这一点后,我重新启动了网络应用程序服务,CPU利用率恢复到正常的5%到15%。然后几天后它又开始做了。再次,重启解决了这个问题。
我的问题是这个。这是正常的每天必须重新启动Web服务吗?如果是这样,为什么?
答案 0 :(得分:2)
假设您的代码没有进行任何更改,并且您没有看到相应的流量增加,这是不正常的。未部署应用程序的Azure Web App几乎应始终保持0%的CPU利用率。我说"几乎总是"因为Microsoft确实在后台运行诊断和监视工具,这可能会导致一些非常短暂的峰值。 See here表示该特定问题的主题。
我的推荐是:
当CPU挂钩并保持挂钩时,请登录您的SCM网站。检查Process Explorer并确认它是您的w3wp.exe(请注意,您的SCM站点有一个单独的w3wp.exe。)它固定了CPU。
确保您没有任何失去理智的网站扩展程序或WebJobs。您可以在站点扩展下的SCM站点上检查已安装的站点扩展 - >已安装标签。任何WebJobs都将作为步骤#1中的单独进程显示在SCM流程资源管理器上。
登录Azure门户并浏览到Web App的管理刀片。转到诊断和解决问题刀片。从这里开始,您可以尝试"每个实例的指标"并通过所有的Perf计数器,看看它是否给你一个关于什么是错的线索。例如,我有一次SignalR疯狂,只有通过看到我的线程计数失控才发现它。
在诊断和解决问题刀片上,您还可以检查应用程序事件。
您可以通过在Web应用程序上安装Application Insights来解决这个问题。它有一个免费的层,可能有足够的空间来进行几天的故障排除。如果这是香蕉与你的代码,你可能会在这里获得一些见解。
我在此处包含失败的请求跟踪日志以确保完整性。但这些可能会出现在Application Insights中。
如果您已经用尽所有这些可能性,请向Microsoft提交支持请求。如上面的链接所示,他们可以访问我们没有的诊断工具,并且可以消除失控诊断或基础设施过程的可能性。我不知道如果CPU峰值是由于你自己的w3wp.exe导致CPU占用多少,他们可以提供多少帮助。
当然,如果您的应用程序非常容易重新部署并且不是一个荒谬的麻烦,您可以重新配置它,看看您是否看到相同的行为。