Linux杀不死的进程之CPU使用率700%

1. 问题发现

[root@zwlbs3 ~]# top

i. 发现有个进程CPU使用率竟然700%,COMMAND 是一些随机的字符串组成,完了~ 中标了;第一想到就是“沙雕”它,kill 命令给我上。服务器

[root@zwlbs3 ~]# kill -9 "PID"

ii. 可是发现 kill 该进程平静一会后又启动了。oracle

注:老图复用,PID、COMMAND 都有变化。spa

2. 查看进程的详细信息

[root@zwlbs3 ~]# cd /proc/748/ [root@zwlbs3 748]# ls -ial # "748"是该进程的 PID,根据你的 PID 来查看便可。

如图:线程

发现该进程是在 /dev/shm 目录下的,/dev/shm 是一个什么目录呢?3d

从网上摘下来一段咱们解一下 /dev/shm

1) 首先能够看出来/dev/shm是一个设备文件, 能够把/dev/shm看做是系统内存的入口, 能够把它看作是一块物理存储设备,一个tmp filesystem, 你能够经过这个设备向内存中读写文件, 以加快某些I/O高的操做,好比对一个大型文件频繁的open, write, read。日志

 

2) 听说oracle就利用了/dev/shm(shitou没用过oracle), 能够经过mount命令列出当前的/dev/shm的挂载的文件系统。code

 

3)  既然是基于内存的文件系统,系统重启后/dev/shm下的文件就不存在了。Linux默认(CentOS)/dev/shm分区的大小是系统物理内存的50%, 虽然说使用/dev/shm对文件操做的效率会高不少。可是目前各发行软件中却不多有使用它的(除了前面提到的Oracle), 能够经过ls /dev/shm查看下面是否有文件, 若是没有就说明当前系统并无使用该设备。blog

查看 /dev/shm 目录的有没有相关文件

[root@zwlbs3 ~]# ls -a /dev/shm/ . .. # 没有任何相关的文件,奇怪了。
  • crontab 也没有相关计划任务。
  • 使用 which 命令也没有找到相关的文件。
  • 查看系统日志也是正常,很是奇怪。
  • 几乎没有找到该进程相关的文件。

3. 解决办法

i. 查看某个进程内部线程占用状况分析进程

[root@zwlbs3 ~]# top -H -p "PID"

ii. 原来有这么多相关的进程,所有 kill 掉crontab

iii. 过来几分钟再次检查,发现系统负载恢复正常

本觉得解决了,结果过了几个小时检查发现又出现了,该死的。
因为生产环境不方便重启服务器,被逼无奈状况下只好试试 重启大法 了。

4. 重启大法

重启服务器后一个小时,再次检查已经恢复正常了,仍是 重启大法 好使。

  • 该恶意程序有什么做用?为什么只消耗CPU资源?因为未找到相关文件信息,缘由也暂时未清楚。
  • 知道的大佬麻烦告诉我一下,很是感谢!
相关文章
相关标签/搜索