阿里云ECS后台CPU占用100%,top却找不到

上周公司阿里云服务器后台报警,CPU占用瞬间飙升到100%:
阿里云ECS后台CPU占用100%,top却找不到
文章图片

首先想到使用top命令查询CPU占用详情:
阿里云ECS后台CPU占用100%,top却找不到
文章图片

【阿里云ECS后台CPU占用100%,top却找不到】发现进程占用CPU都比较低,在CPU占用一栏发现只有ni的占用比较高。
先了解一下CPU相关监控项:

  • us: 用户空间占用CPU百分比。
  • sy: 内核空间占用CPU百分比。
  • ni:用户进程空间改变优先级的进程占用CPU百分比。
  • id: 空闲CPU百分比。
ni表示用户进程改变优先级占用,这个解释有些抽象,简单来说就是优先进程分配时间片占用总进程CPU的百分比。
ni越高表示某个进程优先级越高,占用的CPU占比也就越高。
这么诡异的程序使用top命令找不到,再使用htop查找,没有安装先使用命令安装:
yum -y install epel-release yum -y install htop

然后输入htop查询:
阿里云ECS后台CPU占用100%,top却找不到
文章图片

发现cryto相关字段的进程CPU特别高,首先用kill -9杀死进程。kill进程之后,过了几秒,相关的进程又死灰复燃了。找了很多文章,发现cryto是一个挖矿的病毒。
解决方案
  • htop中找到cryto进程对应的路径,删除该目录下面所有的文件。
  • 全局搜索cryto,把出现的文件或者目录全部删除。
  • 检查防火墙是否关闭,开启防火墙,安装安全软件查杀,全盘查杀整个服务器。
总结
  • 后台报警CPU占用100%,使用top命令找不到占用高的进程,但发现ni占比过高,ni表示优先级进程占用CPU的百分比。说明这个进程一直在长时间的占用CPU
  • 使用htop找到进程,发现是cryto占用很高,cryto是挖矿病毒,kill进程之后,进程又死灰复燃。
  • 找到进程对应的目录,以及全局搜索cryto关键字,删除所有上述目录,再查看后台,CPU占比下降。
参考 linux top中nice的含义

    推荐阅读