公司内网有台memcache服务器经常挂了,是台vm机器,ssh不能登录。用VM软件进去,看到内存有溢出,所有命令都不起作用。只能通过VM的终端重起,每次重起后,没过几天,又挂了。因为是开发的测试虚拟机,所以一直没在意。

   今天又瞟了一下虚拟平台,发现有红色报警,无意中进去,看了一下TOP,工作这么多年,没见到过服务器有这么大的平均负载。

linux服务器平均负载上100,原因分析_ps

 

看进程是一个叫log2sh.sh占用比较多,再看下它的进程数。总共有120多个

linux服务器平均负载上100,原因分析_centos_02

这是一台memcache服务器,没有这个log2sql.sh,所以可以彻底结束这些进程,编一脚本,执行一下。

linux服务器平均负载上100,原因分析_top_03

再检查一下计划任务。crontab -l

linux服务器平均负载上100,原因分析_top_04

   第三项,有个启动log2sql.sh计划,猜测,设计这个任务的管理员,应该是每12小时执行一下这个log2sql.sh。但因为前面有个*,所以变成了每分钟执行一下log2sql.sh脚本。这是一台memcache服务器,mcd_gmetric.sh与log2sql.sh与应用无关,去掉,只留NTP服务。

linux服务器平均负载上100,原因分析_linux_05

负载下来了很多了,目前是50多,再等等看。

linux服务器平均负载上100,原因分析_centos_06

负载到1了,CPU使用了0%,服务器正常了。

 

经验:即使是内网服务器,管理员密码还是要注意,不要随便给出去,这台机器有两个部门知道密码,不知谁在里面弄什么东西。