답변:
다음과 같은 작업을 시도 할 수 있습니다.
while true; do ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10 >> logfile.txt; printf "\n" >> logfile.txt; sleep 3; done
CPU 사용량 측면에서 상위 10 개의 프로세스가 표시됩니다. "head -10"에서 10을 다른 수로 변경하여 표시되는 프로세스 수와 "sleep 3"에서 3을 변경하거나 "sleep 3"부분을 완전히 제거하여 업데이트 빈도를 변경할 수 있습니다.
sort -nr
(적어도 내 우분투 / 데비안
상단에서 체크 아웃하면 원하는 모든 것의 이진 로그가 작성되며 gui와 같은 상단을 사용하여 하루의 시간 조각을 통과 할 수 있습니다 (기본값은 5 분마다 데이터를 가져 오는 것입니다). http://www.atcomputing.nl/Tools/atop/
다른 답변은 현재 진행중인 작업을 볼 수있는 방법 만 보여 주므로 시스템이 재부팅 된 경우 도움이되지 않습니다.
이 정보가 후손 (또는 청구서 또는 기타 용도로) 기록되도록하려면 프로세스 회계가 필요합니다.
여기 내가 찾은 하우투가 있지만, 솔직히 말하면 프로세스 회계를 사용한 지 10 년이 지났다.
거의 실시간 모니터링을위한 shawn의 솔루션에 대한보다 사용자 친화적 인 접근 방식 :
while true; do clear; ps -eo pcpu,pmem,pid,user,args --sort=-pcpu c|head -20; sleep 1; done
이렇게하면 1 초마다 새로 고쳐질 상위 20 개의 프로세스를 정적으로 볼 수 있습니다. ps 명령의 "c"옵션은 전체 args 명령이 아닌 프로세스 실행 파일 이름을 인쇄합니다. 대신 전체 명령 정보가 필요한 경우이 옵션을 생략 할 수 있습니다. % 메모리 사용량 열도 추가되었습니다.
젠투는 "top"명령을 잘 사용하지 않습니까?
machine:~/# top
가장 많은 부하를 일으키는 프로그램의 실행 통계를 제공해야합니다.
top
하여 문제의 원인을 파악할 수 없습니다 . 나중에 다시 확인하고 어떤 프로세스를 수행했는지 확인하고 싶습니다.