top/ps/mpstat가 다른 출력을 표시합니다.

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를 사용하고 있습니다.

답변1

procps 3.2.8이 라이브러리의 아주 오래된 버전인 Debian Squeeze가 실행 중입니다 . mpstat와 유사한 숫자를 표시하므로 top기본적으로 지난 몇 초의 숫자입니다. ps프로세스 시작 시 통계를 표시합니다.

이 숫자는 특이하지만 무언가가 쏟아졌거나 포장되어 있음을 나타냅니다. 지금 이 순간 무슨 일이 일어나고 있는지 알아내려고 한다면 그게 mpstat더 정확할 것 같습니다. top그것은 또한 그 숫자에 가까워야 합니다. 그렇지 않다면 요약 영역이 무엇을 보여주는지 보고 싶습니다.

추신. 프로세스가 수명 동안 얼마나 "바쁜"지 아는 것이 좋습니다.

관련 정보