it-swarm-ko.tech

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

Ps로 CPU 소비가 많은 상위 5 개 프로세스를 표시하는 방법

115
PlanasB

ps 명령으로 쉽게 할 수 있는데 왜 top를 사용합니까?

ps를 사용해야하는 경우 다음을 시도하십시오.

ps aux | sort -nrk 3,3 | head -n 5

지속적인 업데이트로 진정한 '최상급'무언가를 원한다면 watch를 사용하십시오.

watch "ps aux | sort -nrk 3,3 | head -n 5"
112
Boban P.

정답은 :

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
94
Facundo Victor

필요에 따라 조금 더 읽기 쉽습니다.

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입니다)

28
Ryan Horrisberger

나는 ps이 당신이 찾고있는 것이라고 생각하지 않습니다. top의 출력을 보셨습니까?

GNU-Top을 가지고 있다면 배치 모드를 사용하여 CPU 사용량별로 정렬 된 프로세스 목록을 추출하고 head/tail을 사용하여 상위 5 줄 (처음 8 줄은 헤더)을 얻으십시오.

top -b -n 1 | head -n 12  | tail -n 5

BSD top은 다르게 동작하고 비 대화식 모드가 없으므로 다른 ps 기반 솔루션 중 하나를 사용하십시오.

24
Caleb

내가 찾은 가장 빠른 라이너 1 개 (헤더가 합치기 때문에 6 참고) :

ps aux k-pcpu | head -6
6
Nestor Urquiza

Ps의 현재 버전은 ps 매뉴얼 페이지에 제공된 필드 코드를 기준으로 그 안에 정렬 기능이 있습니다. 프로세서 사용에 대한 필드 코드는 "c"입니다. ps 명령 끝에 --sort c를 사용할 수 있습니다 (예 : ps aux --sort c

그러면 프로세스가 목록의 맨 아래에 가장 많은 CPU를 사용하게됩니다. 정렬하는 데 사용되는 필드 코드에 빼기를 추가하여 목록의 역순 ps aux --sort -c

5
Cian D

다른 귀중한 답변에 포인트를 추가하려면 다음을 선호합니다.

ps auxk-c | head -6

또한 Nice 인 헤더를 인쇄합니다.

여기서 k--sort와 동일하고 c는 정렬에 CPU 사용량 (별칭 %cpu) 필드를 지정하고 -는 역 정렬에 사용합니다. .

,로 구분 된 지정자를 더 추가 할 수 있습니다. 다른 가능한 지정자는 다음과 같습니다. %mem, args, bsdstart, pid, gid, uid ... 맨 페이지의 STANDARD FORMAT SPECIFIERS 섹션에서 전체 목록을 찾을 수 있습니다. 예를 들면 다음과 같습니다.

 ps auxk -gid,-%mem | head -11

내부적으로 메모리 사용량별로 정렬 된 그룹 ID가 가장 높은 10 개의 프로세스를 인쇄합니다.

4
2i3r

ps 명령 줄 도구에는 자체 정렬 옵션이 있으므로 선호합니다.

$ ps -eo pcpu,args --sort=-%cpu | head

원하는 열을 추가 할 수 있습니다. ps 매뉴얼 페이지를 통해 사용 가능한 다른 옵션을 확인하십시오.

$ man ps

최고 5 CPU 소비 프로세스를 보는 가장 간단한 방법은,

ps -eo pid,comm,%cpu,%mem --sort=-%cpu | head -n 5

상위 5 개의 메모리 소비 프로세스

ps -eo pid,comm,%cpu,%mem --sort=-%mem | head -n 5

어디,

-e :이 플래그는 모든 프로세스를 선택하는 데 사용됩니다

-o :이 플래그는 사용자 정의 형식으로 사용됩니다.

pid :이 인수는 pid를 표시하는 데 사용됩니다.

comm :이 인수는 명령 이름 만 표시하는 데 사용됩니다. 전체 명령을 얻으려면 args, cmd 또는 command

%cpu :이 인수는 프로세스의 CPU 사용률을 "##. #"형식으로 나타냅니다. 여기서 pcpu도 사용할 수 있습니다.

%mem :이 인수는 프로세스의 상주 세트 크기와 머신의 실제 메모리의 비율을 백분율로 표시합니다. 여기서 pmem도 사용할 수 있습니다.

--sort : 정렬 순서를 지정하십시오. = 다음에 - 부호가 맨 위에 가장 높은 값을 정렬하는 데 사용됩니다. 기본 옵션 인 +는 증가하는 숫자 순서 (즉, 0에서 n까지)를 나열하는 것입니다.

0
muhammad

Mac OS X의 top에는 top -l numberOfSamples 형식의 로깅 모드 옵션이 있습니다 (배치 모드 GNU top) 그러나 "샘플 사이의 델타를 사용하여 계산되므로 첫 번째로 표시된 샘플에는 각 프로세스에 대해 잘못된 % CPU가 표시됩니다"(man 1 top).

# examples
top -o cpu -l 2 -n 5 | tail -n 6
top -o cpu -l 2 -n 5 -stats pid,command,cpu | tail -n 6
top -o cpu -l 2 -n 5 -stats pid,command,cpu -U $(logname) | tail -n 6
0
ulf

top는 CPU를 사용중인 것을 표시합니다. htop를 설치하면 CPU를 통한 필터링을 포함하여보다 세밀한 제어가 가능합니다.

0
PSN