`ps`로 상위 5 개의 CPU 소비 프로세스 표시 ps로 CPU 소비가 많은 상위 5 개

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 cps 명령 끝에서 사용할 수 있습니다. 예 :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 개의 프로세스를 인쇄합니다.