我们有一个作为应用程序服务在Azure上运行的Umbraco应用程序。我们最初是在三年前在Umbraco 7.2.8上启动该网站的。该应用程序包含一个主站点,以及几个其他的根节点,这些根节点使用与该主站点共享的模板和媒体来表示“微站点”。
整个夏天,我们将应用程序升级到了Umbraco 7.11.1,并在初秋将升级部署到了生产环境中。从10月下旬开始,该客户报告了应用程序脱机的地方,这些应用程序通常在Umbraco管理内容时处于脱机状态。中断通常会持续5-20分钟,并导致503错误“服务不可用”,尽管有些中断持续了20分钟以上。
如果我们在不可用的情况下捕获了它,则可以在Azure中重新启动该应用程序,它将重新联机。如果我们的移动速度不够快,它通常会自行纠正,并且通常会在停机20分钟内自行恢复,而无需任何人工干预。
尽管在中断开始之前我们已经部署了一些相对较小的更改,但是似乎与时间安排相对应的唯一更改是为站点和所有微型站点实施了SSL证书。我们将继续对应用程序进行更改并将其部署,并且代码更改似乎对中断没有直接影响。
在过去一个月左右的时间内,停电变得越来越频繁,现在我们预计每天大约会有一次停电。我们没有使用负载平衡,并且该应用程序似乎拥有大量资源,内存使用率始终稳定在25%,CPU使用率通常在4%以下,偶尔会达到7%。
我们无法在Umbraco日志或Azure应用日志中识别出任何有用的信息。每次我们看到中断时,唯一在日志中一致显示的是以下内容(为了安全起见,对Alive URL进行了模糊处理):
2019-01-15 19:21:18,516 [P15832/D4/T81] ERROR Umbraco.Web.Scheduling.KeepAlive - Failed (at "https://XXXXXXXXXX.com:443/umbraco").
System.Threading.Tasks.TaskCanceledException:任务被取消。 在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) 在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在Umbraco.Web.Scheduling.KeepAlive.d__4.MoveNext()
当应用程序处于脱机状态时,此错误将在日志中重复多次,然后在应用程序恢复联机后再次消失。我们已经追逐了几个月,但我们仍然不知道如何进行。我们最近安装了New Relic APM,它使我们对中断开始时应用程序的工作有了更深入的了解,但是我们仍然无法发现任何危险信号。有没有人在使用Azure时见过类似的任何问题。对我们接下来可以尝试的事情有何建议?
感谢您的阅读,并在此先感谢您的帮助。