全部。我有这些奇怪的服务器无法解释如下:
顶部
1 [||||||||||||||| 28.5%] Tasks: 53 total, 1 running
2 [|||||||||||||||| 31.1%] Load average: 0.00 0.00 0.00
3 [|||||||||||||||| 30.5%] Uptime: 211 days(!), 02:21:04
4 [| 0.7%]
Mem[|||| 171/16077MB]
Swp[ 0/11610MB]
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
1 root 20 0 8352 840 704 S 0.0 0.0 1:02.48 init [2]
23764 root 20 0 10584 1364 1172 S 0.0 0.0 0:00.00 `- bash -c while sleep 0.000001; do echo 29150 | md5sum ; done
顶部
top - 01:36:46 up 211 days, 2:40, 5 users, load average: 0.00, 0.00, 0.00
Tasks: 108 total, 2 running, 106 sleeping, 0 stopped, 0 zombie
Cpu(s): 4.8%us, 18.0%sy, 0.0%ni, 77.2%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 16463184k total, 797364k used, 15665820k free, 122992k buffers
Swap: 11889656k total, 0k used, 11889656k free, 499496k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 8352 840 704 S 0 0.0 1:02.48 init
2 root 20 0 0 0 0 S 0 0.0 0:00.15 kthreadd
3 root RT 0 0 0 0 S 0 0.0 0:00.14 migration/0
4 root 20 0 0 0 0 S 0 0.0 0:00.22 ksoftirqd/0
5 root RT 0 0 0 0 S 0 0.0 0:00.00 watchdog/0
6 root RT 0 0 0 0 S 0 0.0 0:00.16 migration/1
7 root 20 0 0 0 0 S 0 0.0 0:00.09 ksoftirqd/1
8 root RT 0 0 0 0 S 0 0.0 0:00.00 watchdog/1
服务器前几天就出现这种状态,所以我尝试使用“while...md5sum”提供cpu压力,但不但while的cpu/mem使用率为0%,而且实际上其他所有的使用率都是0%。
显然,当我终止该 while 循环时,htop 栏下降到了真正的 0%(服务器实际上没有太多工作要做)。
并且我在另一台普通服务器上仔细检查了“md5sum which htop
”(和顶部),它们得到了完全相同的二进制/md5 结果。
那么,有什么想法吗?我是不是被 rootkit 感染了?我已经用过 rkhunter / chkrootkit 了,一点头绪都没有。
答案1
要检查 top 或相关库是否因 rootkit 而隐藏进程,您可以在另一个系统上编译 top 的静态版本。然后复制该版本并运行它。如果您已被 root kit 化,隐藏的进程应该会显示在静态 top 中,因为它不会使用任何 rootkit 库。
关于确定可能导致问题的其他原因的一些建议:
- 禁用尽可能多的不必要的服务(网络、iptables、auditd、selinux、sendmail、nfs、netfs、nscd 等),以限制使用额外 CPU 周期的地方。
- 查看 /var/log/* 以查看是否有任何内容产生错误。
- 在您的服务中启用日志记录或更详细的信息
- 使用 dtrace 或 systemtap 等程序查看正在发生的事情
答案2
您在哪个 tty 上运行 while 循环?我有一个带有 8 个 CPU 的虚拟服务器,我通过 ssh 登录,循环最初在 4 个 CPU 上运行,后来仅在 2 个 CPU 上运行,但负载上升到 1.5,而 %CPU 仍为 0。您可以在循环运行时检查 /proc/loadavg(如果有的话)。