executando um processo de alto consumo de CPU, mas top / htop mostra TODOS os process cpu 0%?

1

tudo. Eu tenho esses servidores estranhos não podem ser explicados como segue:

htop

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

topo

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                                                 

o servidor agiu esse status alguns dias antes, então eu tento usar o "while ... md5sum" para oferecer a pressão da cpu, mas não apenas o uso do cpu / mem enquanto o uso de 0%, mas na verdade todos os outros foram 0%.

obviamente, quando eu matei o loop while, a barra do htop caiu para 0% real (o servidor não tem muito trabalho a fazer).

e eu checo novamente o "md5sum which htop " (e o topo) no outro servidor NORMAL, eles têm exatamente o resultado binário / md5.

então, alguma ideia? Eu sou tão rootkitted mortal? Eu já usei o rkhunter / chkrootkit, nenhum indício.

    
por kiiwii 19.11.2011 / 18:56

2 respostas

3

Para verificar se as bibliotecas principais ou associadas ocultam processos devido a um rootkit, você pode compilar uma versão estática da parte superior em outro sistema. Em seguida, copie essa versão e execute-a. Se você foi rootkitted, os processos ocultos devem aparecer nesse topo estático, já que ele não estará usando nenhuma das bibliotecas de rootkit.

Algumas sugestões para determinar o que mais pode estar causando o problema:

  • Desative o maior número possível de serviços desnecessários (rede, iptables, auditd, selinux, sendmail, nfs, netfs, nscd etc.) para limitar onde os ciclos extras da CPU poderiam estar sendo usados.
  • Procure em / var / log / * para ver se algo está causando erros.
  • Ativar registro em log ou mais detalhamento em seus serviços
  • Use um programa como dtrace ou systemtap para ver o que está acontecendo em
por 19.11.2011 / 22:35
0

Em que tty você está executando o loop while? Eu tenho um vserver com 8 CPUs, estou logando via ssh, o loop está rodando a 4 CPUs no começo, roda somente em 2 CPUs mais tarde mas a carga sobe para 1.5 enquanto a% de CPU permanece em 0. Você pode verificar / proc / loadavg (se você tem isso) enquanto o loop está rodando.

    
por 19.11.2011 / 20:45