重启承载 ZCenter 的虚拟机后服务持续循环启动,如何排查?
问题说明
本文用于排查承载ZCenter的虚拟机重启后,一个或多个ZCenter服务持续出现“启动、健康检查失败、退出或被终止、再次启动”的循环。该现象通常与虚拟机资源不足、磁盘读写延迟、依赖服务尚未恢复或外部健康检查/进程管理器重启策略有关。
现象
- 重启承载ZCenter的虚拟机后,管理页面长时间无法访问,或间歇性返回502/503。
- Java进程、容器或Pod反复创建和退出,进程PID持续变化。
- systemd日志出现
Main process exited、Start request repeated too quickly、Failed with result或start-limit-hit。 - Docker环境出现
Restarting、unhealthy、CrashLoopBackOff、Liveness probe failed、Readiness probe failed、OOMKilled等状态。 - ZCenter日志重复出现服务启动日志,但始终未进入稳定运行状态;还可能出现数据库、Redis、RabbitMQ、Nacos连接超时或Flyway启动失败。
- 主机存在高I/O等待、内存不足、频繁Swap、CPU持续满载或磁盘空间不足。
适用环境
- 产品:ZCenter
- 版本:5.1.0
- 组件:ZCenter各Java服务、Caddy、Gateway、Nacos、MariaDB/MySQL、Redis、RabbitMQ
- 部署形态:承载于虚拟机上的systemd、Docker或Kubernetes部署
可能原因
该现象可能由以下一种或多种原因导致:
- 磁盘读写性能不足:虚拟机重启后多个服务同时读取JAR、写日志、初始化数据库连接或执行Flyway,磁盘高延迟导致服务在健康检查时限内无法就绪。
登录查看余下内容,以及更多产品问题排查与解决经验。
登录