具体问题:
某生产环境上出现过几次docker突然挂掉,无法重启起来,查看日志显示如下报错:
解决办法:
先top下看看,是不是什么进程导致,结果发现一有僵尸进程存在,根据ps -ef 命令过滤出这个僵尸进程,如下:
通过进程可知,这个僵尸进程服务应该执行了一个服务启动脚本,然后咨询租户得知,他们是在每台主机上部署了这个服务用来主机cpu压测的,主机cpu压测太高,导致主机内核出现服务大量锁死,这个服务脚本检查到服务挂掉,就会不断拉起,消耗大量cpu和内存,即使我们重启docker也无法拉起来。最终kill掉僵尸进程的子进程后,docker自动恢复,如下: