프로세스를 실행하면 topas
CPU% 열에 43%가 표시된 다음 85%로 점프합니다.
내가 실행할 때 :
"ps aux | grep processName"
동일한 과정이 5%입니다.
무엇이 더 정확합니까? 또한 Linux "watch" 명령과 유사한 루프를 만들었고 %5에 있는 것을 확인했습니다.
topas와 ps의 차이점은 무엇이며 누가 옳은가요?
출력 ps
:
[ttfai231:root]/root>ps aux | head -1; ps aux | sort -rn +2 | head -10
USER PID %CPU %MEM SZ RSS TTY STAT STIME TIME COMMAND
root 9306548 8.6 1.0 12880 12880 - A 13:35:33 41:20 MYDAEMON
root 1048868 2.0 0.0 448 448 - A 13:22:36 11:50 wait
답변1
나는 이것이 각 필드가 계산되는 방식의 차이라고 생각합니다. 이 topas
필드의 경우:
CPU 사용률%
프로세스의 평균 프로세서 사용량모니터링 간격. 프로세스가 처음 표시될 때 이 값은 프로세스 수명 동안의 평균 프로세서 사용량입니다.
...그리고 ps
필드는 다음과 같습니다.
%CPU
(u 및 v 플래그) 프로세스가 CPU를 사용한 시간 비율그 과정이 시작된 이후로. 이 값은 프로세스가 CPU를 사용한 시간을 프로세스가 소비한 시간으로 나누어 계산됩니다. 다중 프로세서 환경에서는 동일한 프로세스의 여러 스레드가 서로 다른 CPU에서 동시에 실행될 수 있으므로 이 값은 사용 가능한 CPU 수로 더 나뉩니다. (이 데이터를 계산하는 시간 기준이 다양하기 때문에 모든 %CPU 필드의 합이 100%를 초과할 수 있습니다.)
차이점을 강조하는 설명 부분을 굵게 표시했습니다.
CPU topas
% 값은 프로세스가 더 많거나 더 적은 CPU 시간을 사용함에 따라 변동되므로 가장 최근(아마도 짧은) 시간 간격 동안의 CPU 사용량을 표시합니다. % ps
CPU 값은 항상 프로세스 값의 수명 동안의 평균을 표시합니다.