【docker踩坑】记一次CPU100%,内存96%问题排查
服务中的应用全部通过docker的方式进行部署,部署的应用有mysql、redis、zookeeper、kafka、elasticsearch、tomcat。,过几秒,这个java进程就会消失,同时cpu会降到正常水平,再过几秒会出现另一个高占用率的java进程。:将elasticsearch启动后,cpu突然飙升到100%,内存飙升到96%,见下图阿里云控制台截图。,将进程按照cpu使用率进行排
·
- 背景:服务中的应用全部通过docker的方式进行部署,部署的应用有mysql、redis、zookeeper、kafka、elasticsearch、tomcat
- 问题:将elasticsearch启动后,cpu突然飙升到100%,内存飙升到96%,见下图阿里云控制台截图
- 排查过程:① 使用top命令,按P,将进程按照cpu使用率进行排序,发现是某个java进程占用96.3%的cpu。但是,过几秒,这个java进程就会消失,同时cpu会降到正常水平,再过几秒会出现另一个高占用率的java进程。导致无法按照传统的方式进行排查。
② 由于所有应用都是使用docker部署的,所以考虑使用docker stats命令排查。发现es应用的cpu使用率变化非常剧烈,0 % 或 93%。通过docker logs -f c_es命令,查看c_es的日志,发现es在不断地重启。将c_es停掉,问题得到解决。
- 问题出现原因:在创建c_es服务器时,使用了–restart=always 参数,意味着容器如果退出,会一直重启。如果启动容器时都失败了,那么会进入失败-重启这个死循环。因此,–restart=always参数应该谨慎使用。
更多推荐
已为社区贡献1条内容
所有评论(0)