답변:
명령으로 ps
쉽게 할 수있을 때 왜 사용 top
합니까?
를 사용해야하는 경우 다음을 ps
시도하십시오.
ps aux | sort -nrk 3,3 | head -n 5
지속적인 업데이트로 진정한 '최상급'무언가를 원한다면 watch를 사용하십시오.
watch "ps aux | sort -nrk 3,3 | head -n 5"
ps aux | sort -nrk 3,3 | head -n 5
top
실제로 이것이 실제로 어떻게 작동 하는지 궁금 합니다.
top
는 프로세스리스트를 읽고 다른 프로세스로 배관하지 않고 자체적으로 결과를 표시합니다
정답은 다음과 같습니다.
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
bash
(x2 또는 그 head
와 같이) 표시되는 것 같습니다 ps
.
sort
것이고, 두 번째는 정렬을 방해하지 않고 열을 지정하는 방법을 보여줍니다. 무언가를 설명 할 때 .. 한 번에 한 가지만 간결하고 설명하는 것이 좋습니다.
필요에 따라 조금 더 읽기 쉽습니다.
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
기반 솔루션 중 하나를 사용하십시오 .
top -o cpu -n 5
에서 동일한 것을 달성하는 방법입니다. 아는 사람 있나요? 나의 top
것과는 다릅니다 top
.
-o
과 -n
가 종료하기 전에 화면을 갱신 횟수를 설정합니다.
top
배치 모드가없는 것 같습니다. top
다른 명령 으로 배관하는 방법이 있어야 합니다. 나는 약간의 연구를 할 것이다.
top
는 오늘 오후 설명대로 작동했습니다. 건배.
다른 귀중한 답변에 포인트를 추가하려면 다음을 선호합니다.
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 개의 프로세스를 인쇄합니다.
명령 줄 도구 ps
에는 자체 정렬 옵션이 있으므로 선호합니다.
$ ps -eo pcpu,args --sort=-%cpu | head
원하는 열을 추가 할 수 있습니다. ps
매뉴얼 페이지에서 사용 가능한 다른 옵션을 확인 하십시오.
$ man ps
top
Mac OS X에서는 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
상위 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
: 정렬 순서를 지정하십시오. 후 입니다 기본 옵션은 어디 기호 상단에 가장 높은 값을 정렬하는 데 사용되는 [n으로, 즉 0] 증가 숫자 순서를 나열하는 것입니다.=
-
+