开始的时候是开发发现数据库连接不上了(数据库跑在测试服务器上的虚拟机work14里),然后准备查原因,
发现远程终端也连不上了,通过内网,和外网都试了,全部连不上,ping内网和外网IP都能ping通, 然后持续了3-5分钟,突然就好了,
然后登陆上去,发现虚拟机停掉了3个,之前开了4个(work11,work12,work13,work14),只有一个work11在跑
然后老大让我去找原因,刚上班几天,之前完全没经验,心里莫名的紧张,然后就去找阿铭老师求助去了
然后我去查日志,先查了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:老大就是那个开发)
编辑回复