top / ps / mpstat, показывающий разный выход

Когда моя top показывает нагрузку 19/20 и мои шоу ps

 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] 

Но mpstat показывает

 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 показывает, что mpstat считывает из /proc/stat чтобы получить загрузку процессора.

Во что я должен верить? Что вызывает это различие, или я использую его неправильно? Я использую Debian Squeeze 2.6.32-5-amd64

Debian Squeeze запускает procps 3.2.8 который был очень старой версией библиотеки. mpstat показывает числа, похожие на top , поэтому это в основном числа последних нескольких секунд. ps показывает статистику с момента начала процесса.

Цифры необычны, хотя это указывает на нечто переполняющее или обертывающее. Если вы хотите решить, что происходит на этой секунде, то mpstat кажется более точным. top должен быть близок к этим числам, и если это не так, мне было бы любопытно посмотреть, что показывает его сводная область.

PS. Лучше видеть, как «занят» процесс на протяжении всей своей жизни.