ps로 CPU 소비가 많은 상위 5 개 프로세스를 표시하는 방법은 무엇입니까?
답변
명령으로 ps
쉽게 할 수있을 때 왜 사용 top
합니까?
를 사용해야하는 경우 다음을 ps
시도하십시오.
ps aux | sort -nrk 3,3 | head -n 5
지속적인 업데이트로 진정한 ‘최상급’무언가를 원한다면 watch를 사용하십시오.
watch "ps aux | sort -nrk 3,3 | head -n 5"
답변
정답은 다음과 같습니다.
ps --sort=-pcpu | head -n 6
따라서 정렬을 방해하지 않고 열을 지정할 수 있습니다.
전의:
ps -Ao user,uid,comm,pid,pcpu,tty --sort=-pcpu | head -n 6
MAC OS X 참고 사항 : Mac OS X ps
에서는을 인식하지 --sort
못하지만 -r
현재 CPU 사용량별로 정렬 할 수 있습니다. 따라서 Mac OS X의 경우 다음을 사용할 수 있습니다.
ps -Ao user,uid,comm,pid,pcpu,tty -r | head -n 6
답변
필요에 따라 조금 더 읽기 쉽습니다.
ps -eo pcpu,pid,user,args --no-headers| sort -t. -nk1,2 -k4,4 -r |head -n 5
샘플 출력 :
1.3 4 root [ksoftirqd/0]
1.1 9 root [ksoftirqd/1]
1.0 17606 nobody /usr/sbin/gmetad
1.0 13 root [ksoftirqd/2]
0.3 17401 nobody /usr/sbin/gmond
(이 필드는 % CPU, PID, USER, COMMAND입니다)
답변
나는 ps
당신이 찾고있는 것이라고 생각하지 않습니다 . 의 출력을 보셨습니까 top
?
GNU-Top을 가지고 있다면 배치 모드를 사용하여 CPU 사용량별로 정렬 된 프로세스 목록을 추출하고 head / tail을 사용하여 상위 5 줄 (처음 8 줄은 헤더)을 얻으십시오.
top -b -n 1 | head -n 12 | tail -n 5
BSD top은 다르게 동작하는 것으로 보이고 비 대화식 모드는 없으므로 다른 ps
기반 솔루션 중 하나를 사용하십시오 .
답변
내가 찾은 가장 빠른 라이너 1 개 (헤더가 합치기 때문에 6 참고) :
ps aux k-pcpu | head -6
답변
ps의 현재 버전은 ps 매뉴얼 페이지에서 제공 한 필드 코드를 기준으로 그 안에 정렬 기능이 있습니다. 프로세서 사용에 대한 필드 코드는 “c”입니다. --sort c
ps 명령 끝에서 사용할 수 있습니다. 예 :ps aux --sort c
그러면 프로세스가 목록의 맨 아래에 가장 많은 CPU를 사용하게됩니다. 정렬하는 데 사용되는 필드 코드에 빼기를 추가하여 목록의 역순ps aux --sort -c
답변
다른 귀중한 답변에 포인트를 추가하려면 다음을 선호합니다.
ps auxk-c | head -6
또한 헤더를 인쇄합니다.
다음 k
은 정렬을위한 CPU 사용량 (alias ) 필드 --sort
와 동일 하고 c
지정 하며 역 정렬을위한 것입니다.%cpu
-
당신은로 구분 더 지정자를 추가 할 수 있습니다 ,
, 다른 가능한 지시자는 다음과 같습니다 : %mem
, args
, bsdstart
, pid
, gid
, uid
… 당신이 전체 목록을 찾을 수 있습니다 표준 형식 지정자의 man 페이지의 섹션을 참조하십시오. 예를 들면 다음과 같습니다.
ps auxk -gid,-%mem | head -11
내부적으로 메모리 사용량별로 정렬 된 그룹 ID가 가장 높은 10 개의 프로세스를 인쇄합니다.