为什么设置健康检查后健康检查失败?

本文介绍使用SAE时,如何排查健康检查失败的原因。

问题现象

SAE环境中设置健康检查,出现健康检查失败现象。

问题原因

  • 健康检查的参数配置有误。

  • 健康检查所需的命令缺失。

解决方案

健康检查失败的排查步骤如下。

  1. 参见设置健康检查,确认延迟时间(秒)超时时间检查周期(秒)三个参数设置无误。

    首次部署SAE时,健康检查失败的常见原因如下。

    例如,您的程序启动需要120秒,但是延迟时间设置为60秒;或者,您的接口响应时间存在2秒的波动,但是超时时间设置为1秒。这些场景中,参数的取值有误,您需要按实际情况进行修改。

  2. 查看应用事件,进一步明确失败的原因。

    STs3f3t62R

    如果健康检查失败,原因会在应用事件中透出。

    如果是运行态健康检查失败,可以结合基础监控(CPU、Load、TCP连接数)排查,Java语言还可以结合应用监控进一步排查。

  3. SAEHTTP检查依赖容器curl命令、所以,如果您采用自定义镜像部署,需要在镜像内curl命令,否则会造成健康检查失败。

  4. 进入Webshell,检查容器端口,是否和健康检查中设置的一样。

  5. 如果因为健康检查失败导致容器反复重启,而无法进入Webshell,建议您删除Liveness的健康检查配置,重新部署应用,确保程序能够启动,再进一步排查。