我有一台小型虚拟服务器(1GB RAM,1 个 vcore),它运行良好,直到它突然开始报告由于 kswapd0 而导致的 100% CPU 使用率。内存消耗在 50% 到 60% 之间。我将 swappiness 设置为 0,只是为了检查它是否释放了 CPU 资源,但事实并非如此。我在 16.04 上遇到过这个问题,现在升级到 18.04 后也遇到了这个问题。如何摆脱 kswapd0 占用的 CPU?
答案1
如果有人遇到同样的问题 - 原因是恶意软件: Multios.Coinminer.Miner
。
kswapd0
是一个位于 的二进制文件/root/.configrc/a/kswapd0
。您需要做的是:
- 清除 crontab 任务
/root/.configrc
- 清除
ssh
键 - 删除
/root/.configrc
答案2
答案3
恶意软件以访客身份运行
如果您曾经启用过 Ubuntu 的访客帐户,后来又启用了 SSH,则可能会有恶意软件使用您的访客帐户运行。
sudo find /home -f kswapd0
它可以在任何用户的主目录中找到,例如/home/guest/.configrc/
加入任何有受感染机器的网络(会议、咖啡馆、城市),或者如果您使用类似的服务ngrok
,同时在系统上打开 SSH,则您的计算机都会暴露于这种简单的客户漏洞。
因为权限从未提升(guest 不能在 /home/guest 之外写入文件,也不能在没有密码的情况下使用 sudo),所以我能够删除 guest 帐户并且一切都正常运行。
答案4
我将 swappiness 从 60 改为 0,但没有效果。根据保罗的回答,我发现VIRT/RES/SHR
那些占用大量 CPU 的任务的值不为零kswapd0
,这表明存在恶意软件。
有关类似问题的最新更新还显示存在隐藏如下内容的恶意软件kswapd0
:
以下是我的解决方案。(请sudo
谨慎killall
使用rm -rf
)
- 找出假货所在
kswapd0
。
$ sudo find /home -name kswapd0
/home/user/.configrc5/a/kswapd0
- 由于新服务器的账户很少,我仔细检查了没有人使用该账户,并且该
.configrc5
文件夹相对较新(大约一周内创建)。
$ sudo ls /home/user -al
total 224
drwxr-xr-x 18 user user 4096 四 10 23:56 .
drwxr-xr-x 8 root root 4096 四 10 20:44 ..
-rw-r--r-- 1 user user 220 一 13 09:10 .bash_logout
-rw-r--r-- 1 user user 3771 一 13 09:10 .bashrc
drwxrwxr-x 14 user user 4096 二 10 17:40 .cache
drwx------ 12 user user 4096 二 24 15:09 .config
drwxrwxr-x 4 user user 4096 四 4 00:48 .configrc5
...
-rw-r--r-- 1 root root 131953 二 26 23:34 plm
-rw-r--r-- 1 root root 6300 二 26 23:34 plm2
-rw-r--r-- 1 user user 807 一 13 09:10 .profile
drwxr-xr-x 2 user user 4096 一 13 09:34 Public
drwx------ 3 user user 4096 二 10 16:09 snap
drwx------ 2 user user 4096 四 10 23:56 .ssh
-rw-r--r-- 1 user user 0 一 13 09:51 .sudo_as_admin_successful
drwxr-xr-x 2 user user 4096 一 13 09:34 Templates
drwxr-xr-x 2 user user 4096 一 13 09:34 Videos
- (可以跳过)我以为我可以
user
一劳永逸地杀死该帐户,并检查它是否具有 sudo 权限,但是sudo userdel user
被拒绝了。 - 终止所有由
user
$ sudo killall -u user
- 删除以下所有文件
.configrc5
$ sudo rm -rf /home/user/.configrc5
- 再次检查
htop
,不再有奇怪的 CPU 活动。