我的运维生涯中第一个故障处理过程

 

环境: kvm虚拟化,宿主机为centos6,虚拟机也为centos6,虚拟机上跑的tomcat+jdk...



新朋友请点上方
 蓝字“阿铭linux”关注

环境: kvm虚拟化,宿主机为centos6,虚拟机也为centos6,虚拟机上跑的tomcat+jdk

问题:虚拟机假死,远程连不上,服务不可用。

老大让我去找原因,刚上班几天,之前完全没经验,心里莫名的紧张,然后就去找阿铭老师求助去了。



kvm日志,发现有错误,但是信息很少,没有收获。然后继续求助。





然后把问题反馈给老大了,但是老大说ssh连不上什么原因,再去查一查。之后把虚拟机关掉两个,然后top命令查看内存,发现内存占用率在96%,而且跑了7-8个Java进程在。把这个问题反映给老大,老大说让我查查tomcat为什么会启动多个Java,正常应该是一个啊。

之后,老大把Java进程全杀掉了,重新启动了tomcat,这个时候内存占用率在20%,终于找到原因了,不是虚拟机占用的,而是tomcat的问题。然后去查tomcat启动多个Java进程的问题,结果又是毫无头绪,中间把ssh登录不上的原因查到了。



在/var/log/messages 日志里有一段记录进程信息的,看到sshd前边的两个值,有时候为-17 -1000, 有时候又是 0  0

然后就去查了两个值得含义,原来是类似优先级的一个东西,在内存不足的时候,按照值得大小,来一个一个杀掉,值大的就会先杀掉,在出问题的时候,刚好sshd前的值,变成了0 0 ,所以sshd在内存不足的时候,被杀掉了.

后来又去查tomcat为什么会启动多个Java进程,然后突然发现机器上又多了个Java进程,把这个情况告诉老大。结果老大说,应该不是tomcat自动启动的Java,刚刚他刚好重启了tomcat,应该是之前的tomcat关掉的时候Java进程没有结束,然后试了一下stop tomcat,结果发现,tomcat停掉了,网站不能访问了,但是Java进程还是存在。

然后就继续查tomcat为什么不能完全退出,发现了这个帖子:http://tuhaitao.iteye.com/blog/1122935

原来是开发的代码问题,按照帖子的说明,试了一下没有退出的进程,果然发现有一些ftp相关的进程没有设置成daemon,所以导致tomcat不能正常退出。

问题终于解决了,把链接发给了老大,情况说明了一下,至此我运维生涯里遇到的第一个问题算是解决了。不过老大好像有点不高兴……(ps:老大就是那个开发)

- END -
出品 | 阿铭linux
私人微信:81677956  验证:公众号   
提升自己,才是世界上最稳健的投资



    关注 阿铭linux


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册