top/ps/mpstat mostrando resultados diferentes

top/ps/mpstat mostrando resultados diferentes

Cuando mis topshows tienen una carga de 19/20 y mis psshows

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]

pero mpstatmuestra

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

stracemuestra que mpstatestá leyendo /proc/statpara recuperar la carga del procesador.

¿A cuál debería creer? ¿Qué está causando esta diferencia o lo estoy usando mal? Estoy usando Debian Squeeze 2.6.32-5-amd64

Respuesta1

Se está ejecutando Debian Squeeze, procps 3.2.8que era una versión muy antigua de la biblioteca. mpstatmuestra números similares a top, por lo que son básicamente los números de los últimos segundos. psmuestra las estadísticas desde que comenzó el proceso.

Sin embargo, los números son inusuales y apuntan a que algo se está desbordando o envolviendo. Si quieres averiguar qué estaba sucediendo justo en este momento, entonces mpstatparece más preciso. topTambién debería estar cerca de esos números y, si no lo es, tendría curiosidad por ver qué muestra su área de resumen.

PD. Es mejor ver cuán "ocupado" estuvo el proceso a lo largo de su vida.

información relacionada