로드 평균이 25를 초과하는 단일 코어 VPS가 있습니다. 그에 도달하면 참을 수 없을 정도로 느려지고 명령 실행 dash
속도가 빠르며 RAM보다 적은 RAM을 사용 bash
하면 실행하는 데 시간이 걸립니다. 어떤 프로세스가 고부하를 일으키는 지 어떻게 추적 할 수 있습니까?
답변
당신은 설치할 수 있습니다 htop
. 좋은 점은 htop
CPU 당 사용량뿐만 아니라 의미있는 메모리 텍스트 그래프와 맨 위에 사용량을 스왑한다는 것입니다.
설치하려면 htop
:
sudo apt-get install htop
시작하십시오 :
htop
을 눌러 F6
프로세스를 정렬 한 다음 탐색 키를 사용하여 선택 PERCENT_CPU
하고 enter를 누릅니다.
또는 다음 top
과 같이 사용할 수 있습니다 ( source ).
top -b -n 1 | head -n 12
답변
아래는 Unix.SE 에서 도난 당했습니다. CPU 사용량이 60 % 이상인 경우 최대 CPU 사용량을 차지하는 프로세스를 찾으십니까? 물론이 질문에 적합합니다.
특정 CPU 사용량별로 프로세스 나열
ps ahux --sort=-c | awk '{if($3>0.0)printf"%s %6d %s\n",$3,$2,$11}'
CPU 사용률이 >0.0
% 인 프로세스 목록 이 표시됩니다 >50.0
. 필요에 따라이 값을 변경할 수 있습니다 (예 . 각 줄에는 CPU 사용률 (%), PID 및 프로세스 파일이 포함됩니다.
CPU 사용량이 가장 많은 프로세스 나열
ps ahux --sort=-c | awk 'NR<=5{printf"%s %6d %s\n",$3,$2,$11}'
NR<=5
현재 가장 많은 CPU로드를 발생시키는 상위 5 개 ( ) 프로세스가 표시됩니다.
답변
어제 공부 awk
하고 있었고 다른 두 가지 답변을 가지고 놀았습니다. 결과는 다음과 같습니다.
-
다음을 사용하여 CPU 사용량이 가장 높은 프로세스 만 얻으십시오
ps aux
.ps auxh | awk -v max=0 '{if($3>max){CPU=$3; PID=$2; NAME=$11; max=$3}} END{printf "%5s %6d %s\n",CPU,PID,NAME}'
-
다음을 사용하여 CPU 사용량이 가장 높은 세 가지 프로세스를 얻으십시오
top
.top -b -n 1 | awk 'NR>7 && NR<11 {printf "top: %5s %6d %s %s\n",$9,$1,$12,$13}'
-
다음을 사용하여 CPU 사용량이 가장 높은 세 가지 프로세스를 얻으십시오
ps aux
.ps auxh --sort=-c | awk 'NR<=3 {printf "ps: %5s %6d %s\n",$3,$2,$11}'
나는 (과 동시에 마지막 두 명령을 실행하려고했습니다 <command>; wait; <command>
과 <command> & <command> &
),하지만 나는 그것을 전혀 할 수 없습니다 깨달았다
참고 문헌 :
- 현재 질문 (및 @ αғsнιη의 주석) 에서 다른 두 가지 멋진 답변 .
- 열 1의 최대 값을 찾아 file의 열 2에서 해당 레코드를 인쇄하십시오 .
- 몇 줄에 awk를 실행하는 방법은 무엇입니까?
답변
top
명령 사용
top
– 리눅스 프로세스 표시최상위 프로그램은 실행중인 시스템의 동적 실시간보기를 제공합니다. 현재 Linux 커널에서 관리중인 프로세스 또는 스레드 목록뿐만 아니라 시스템 요약 정보를 표시 할 수 있습니다. 표시된 시스템 요약 정보의 유형과 프로세스에 대해 표시되는 정보의 유형, 순서 및 크기는 모두 사용자가 구성 할 수 있으며 해당 구성은 재시작시에도 지속적으로 유지 될 수 있습니다.