top / ps / mpstat mostrando saída diferente

1

Quando meu top mostra uma carga de 19/20 e meu ps mostra

root@server:/home/nohup# ps -eo pcpu,pid,user,args | sort -k 1 -r | head -5
%CPU   PID USER     COMMAND
122131 18695 mysql  /usr/sbin/mysqld  xxxxx
0.1   961 root     [kdmflush]
0.1   937 root     [kdmflush]
0.1  1025 root     [jbd2/dm-2-8]

Mas mpstat mostra

root@server:/home/nohup# mpstat
Linux 2.6.32-5-amd64 (sms-db3)  06/13/2014  _x86_64_    (16 CPU)

09:35:42 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
09:35:42 PM  all    2.38    0.00    0.15    0.15    0.00    0.02    0.00    0.00   97.29

strace mostra que mpstat está lendo /proc/stat para buscar a carga do processador.

Em qual devo acreditar? O que está causando essa diferença ou estou usando errado? Estou usando o Debian Squeeze 2.6.32-5-amd64

    
por nohup 13.06.2014 / 18:09

1 resposta

2

O Debian Squeeze está rodando procps 3.2.8 , que era uma versão muito antiga da biblioteca. mpstat mostra números semelhantes a top , então são basicamente os números dos últimos segundos. ps mostra as estatísticas de quando o processo começou.

Os números são incomuns, embora aponte para algo que transborda ou quebra. Se você quer descobrir o que estava acontecendo neste exato segundo, então mpstat parece mais preciso. top deve estar perto desses números também e, se não estiver, eu ficaria curioso para ver o que sua área de resumo estava mostrando.

PS. É melhor ver como o processo ficou "ocupado" durante toda a sua vida.

    
por 24.10.2015 / 00:59

Tags