我的Azure Web应用程序报告了与内存有关的自动修复。但是,我的Web应用程序上的内存消耗从未达到90%。主动自动修复如何知道何时重新启动我的Web应用程序?
答案 0 :(得分:0)
在您的情况下,正如您提到的,Web应用程序上的内存消耗从未达到90%,这使我认为您的应用程序由于主动自动修复而没有重新启动。
主动自动修复会查找违反以下任一规则的Web应用程序:
内存百分比规则:此规则监视Web App进程的私有字节,以查看其是否超过限制的90%超过30秒。
请求百分比规则:此规则监视花费时间超过时间限制的请求。当请求总数的80%(或更多)花费200+秒时,它就会中断。
如果其中任何一条规则均被违反,则Web App将经历该过程的重复重启。 有关主动自动修复的更多信息,请参见: https://blogs.msdn.microsoft.com/appserviceteam/2017/08/17/proactive-auto-heal/ 在这种情况下,可能是您的应用程序必须按照自动修复规则运行,该规则是有权访问该网站的人必须在您端的某个时点设置此插槽。
Azure门户或Web.config文件中可能有一个规则,用于定义生产插槽的内存限制。您应该可以按照以下提到的步骤进行验证:
在哪里登录Azure门户:
•转到WebApp中的诊断和解决页面。
•在右侧,您将看到支持工具类别,在该类别下,请选择缓解:
https://i.stack.imgur.com/1Sthh.png
•然后,您将看到“配置缓解规则”,请检查是否已启用“自动修复”,如果是,则在“内存限制”下会看到什么?
https://i.stack.imgur.com/ZbNDt.png
如果您看到规则已配置,则说明该应用程序达到了内存自动修复限制并已被回收。错误配置的“自动修复”规则可能会导致应用频繁重启,这可能是不可取的。 建议: 检查自动修复设置:确保您的自动修复配置不会引起应用程序意外重启。