Computer >> 컴퓨터 >  >> 프로그래밍 >> Bash 프로그래밍

초보자부터 전문가까지, 리눅스 top 명령어 실전 예제 15가지 총정리

초보자부터 전문가까지, 리눅스 top 명령어 실전 예제 15가지 총정리이 글은 특정 명령어나 기능에 대해 15가지 예제를 소개하는 15 예제 시리즈의 연재물입니다. 이 시리즈에서는 앞서 find 명령어, crontab 예제, grep 명령어, history 명령어, ping 명령어, wget 예제 등을 다룬 바 있습니다.

이번 글에서는 초보자와 전문가 모두에게 유용하게 활용할 수 있는 리눅스 top 명령어의 15가지 예제를 살펴보겠습니다.

1. 원하는 컬럼 기준으로 프로세스 정렬하기 – O 키

top 명령어는 기본적으로 CPU 사용량 순으로 프로세스를 표시합니다. top 실행 중에 M(대문자)을 누르면 아래와 같이 메모리 사용량 기준으로 정렬된 결과를 볼 수 있습니다.
초보자부터 전문가까지, 리눅스 top 명령어 실전 예제 15가지 총정리

그림: M 키로 메모리 사용량 기준 정렬 – Unix top 명령어

임의의 컬럼을 기준으로 정렬하려면 O(대문자 O)를 누르세요. 그러면 아래와 같이 정렬 가능한 모든 컬럼 목록이 화면에 표시됩니다.

Current Sort Field: P for window 1:Def
Select sort field via field letter, type any other key to return 
 a: PID = Process Id v: nDRT = Dirty Pages count
 d: UID = User Id y: WCHAN = Sleeping in Function
 e: USER = User Name z: Flags = Task Flags
 ........

top 명령어 실행 중에 R 키를 누르면 정렬 순서가 역순으로 변경됩니다.

2. top을 종료하지 않고 프로세스 종료하기 – k 키

종료해야 할 프로세스를 찾았다면 'k' 키를 누르세요. 그러면 프로세스 ID(PID)와 보낼 시그널을 입력하라는 메시지가 나타납니다. 해당 PID를 종료할 권한이 있다면 프로세스가 성공적으로 종료됩니다.

PID to kill: 1309
Kill PID 1309 with signal [15]: 
 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
 1309 geek 23 0 2483m 1.7g 27m S 0 21.8 45:31.32 gagent
 1882 geek 25 0 2485m 1.7g 26m S 0 21.7 22:38.97 gagent
 5136 root 16 0 38040 14m 9836 S 0 0.2 0:00.39 nautilus

3. top을 종료하지 않고 프로세스 우선순위(니스 값) 변경하기 – r 키

프로세스를 종료하지 않고 우선순위만 변경하고 싶다면 r 키를 누르세요. renice할 PID를 입력하라는 메시지가 나타나면 PID와 우선순위 값을 차례로 입력하면 됩니다.


PID to renice: 1309
Renice PID 1309 to value: 
 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
 1309 geek 23 0 2483m 1.7g 27m S 0 21.8 45:31.32 gagent
 1882 geek 25 0 2485m 1.7g 26m S 0 21.7 22:38.97 gagent

4. 특정 사용자 또는 특정 PID만 표시하기 – top -u, top -p

top -u 옵션을 사용하면 top 출력에서 특정 사용자의 프로세스만 표시할 수 있습니다.

$ top -u geek

또한 top 실행 중에 u 키를 누르면 아래와 같이 사용자명을 입력하라는 프롬프트가 나타납니다.

Which user (blank for all): geek
 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
 1309 geek 23 0 2483m 1.7g 27m S 0 21.8 45:31.32 gagent
 1882 geek 25 0 2485m 1.7g 26m S 0 21.7 22:38.97 gagent

지정한 PID의 특정 프로세스만 표시하기 – top -p

아래와 같이 top -p 옵션을 사용하면 특정 PID의 프로세스만 표시할 수 있습니다.

$ top -p 1309, 1882
 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
 1309 geek 23 0 2483m 1.7g 27m S 0 21.8 45:31.32 gagent
 1882 geek 25 0 2485m 1.7g 26m S 0 21.7 22:38.97 gagent

5. CPU 코어별 사용률 개별 표시하기 – 1(숫자 일) 키

top은 기본적으로 모든 CPU의 사용률을 하나로 합쳐서 아래와 같이 표시합니다.

top - 20:10:39 up 40 days, 23:02, 1 user, load average: 4.97, 2.01, 1.25
Tasks: 310 total, 1 running, 309 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.5%us, 0.7%sy, 0.0%ni, 92.3%id, 6.4%wa, 0.0%hi, 0.0%si, 0.0%st

top 실행 중에 1(숫자 일)을 누르면 CPU 정보가 분리되어 시스템에 장착된 개별 CPU 코어별 상세 사용률을 확인할 수 있습니다.

top - 20:10:07 up 40 days, 23:03, 1 user, load average: 5.32, 2.38, 1.39
Tasks: 341 total, 3 running, 337 sleeping, 0 stopped, 1 zombie
Cpu0 : 7.7%us, 1.7%sy, 0.0%ni, 79.5%id, 11.1%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu1 : 0.3%us, 0.0%sy, 0.0%ni, 94.9%id, 4.7%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu2 : 3.3%us, 0.7%sy, 0.0%ni, 55.7%id, 40.3%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu3 : 5.0%us, 1.0%sy, 0.0%ni, 86.2%id, 7.4%wa, 0.0%hi, 0.3%si, 0.0%st
Cpu4 : 38.5%us, 5.4%sy, 0.3%ni, 0.0%id, 54.8%wa, 0.0%hi, 1.0%si, 0.0%st
Cpu5 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu6 : 0.3%us, 0.7%sy, 0.0%ni, 97.3%id, 1.7%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu7 : 5.4%us, 4.4%sy, 0.0%ni, 82.6%id, 7.7%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu8 : 1.7%us, 1.7%sy, 0.0%ni, 72.8%id, 23.8%wa, 0.0%hi, 0.0%si, 0.0%st

6. 화면 즉시 새로고침 및 갱신 주기 변경하기

리눅스 top 명령어는 기본적으로 3.0초마다 출력을 갱신합니다. 원하는 시점에 즉시 화면을 갱신하고 싶다면 스페이스바를 누르면 됩니다.

갱신 주기를 변경하려면 대화형 모드에서 d 키를 누른 후, 아래와 같이 초 단위의 시간을 입력하세요.

Change delay from 3.0 to: 10
 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
 1309 geek 23 0 2483m 1.7g 27m S 0 21.8 45:31.32 gagent
 1882 geek 25 0 2485m 1.7g 26m S 0 21.7 22:38.97 gagent

7. 실행 중인 프로세스 강조 표시하기 – z 또는 b 키

z 또는 b 키를 누르면 아래와 같이 현재 실행 중인 프로세스가 색상으로 강조되어 한눈에 구분됩니다.
초보자부터 전문가까지, 리눅스 top 명령어 실전 예제 15가지 총정리

그림: Ubuntu Linux – top 명령어로 실행 중인 프로세스 강조 표시

8. 명령어 절대 경로와 인수 표시하기 – c 키

c 키를 누르면 아래와 같이 명령어의 절대 경로와 인수를 표시하거나 숨길 수 있습니다.

 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
 1309 geek 23 0 2483m 1.7g 27m S 0 21.8 45:31.32 /usr/sbin/gagent
 1882 geek 25 0 2485m 1.7g 26m S 0 21.7 22:38.97 /usr/sbin/gagent -l 0 -u pre

9. 지정한 횟수만큼만 실행 후 자동 종료하기 – top -n

top은 q 키를 누를 때까지 계속해서 출력을 갱신합니다. 일정 횟수만 확인한 뒤 자동으로 종료되길 원한다면 아래와 같이 -n 옵션을 사용하세요.

다음 예제는 top 출력을 2회 반복하여 보여준 뒤 자동으로 종료됩니다.

$ top -n 2

10. 배치(batch) 모드로 top 실행하기

top을 배치 모드로 실행하려면 아래와 같이 -b 옵션을 사용합니다.

$ top -b -n 1

참고: 이 옵션은 top 명령어의 출력을 사람이 읽을 수 있는 텍스트 파일로 저장할 때 매우 유용합니다.

11. 여러 패널로 화면 분할하기 – A 키

터미널에서 top 출력을 여러 화면으로 나눠 보려면 A 키를 누르세요. 'a' 키를 눌러 각 창 사이를 전환할 수 있습니다. 서로 다른 컬럼 기준으로 각 창을 정렬해 동시에 모니터링할 때 특히 유용합니다.

12. 명령줄 및 대화형 도움말 보기

아래와 같이 top -h를 입력하면 명령줄 옵션에 대한 간단한 도움말을 빠르게 확인할 수 있습니다.

$ top -h
 top: procps version 3.2.0
usage: top -hv | -bcisS -d delay -n iterations [-u user | -U user] -p pid [,pid ...]

top 실행 중에 h 키를 누르면 대화형 명령어에 대한 도움말이 표시됩니다.

Help for Interactive Commands - procps version 3.2.0
Window 1:Def: Cumulative mode Off. System: Delay 3.0 secs; Secure mode Off.
 Z,B Global: 'Z' change color mappings; 'B' disable/enable bold
 l,t,m Toggle Summaries: 'l' load avg; 't' task/cpu stats; 'm' mem info
 1,I Toggle SMP view: '1' single/separate states; 'I' Irix/Solaris mode
 ..........

13. 표시되는 프로세스 개수 줄이기 – n 키

대화형 모드에서 n 키를 누르면 숫자를 입력하라는 프롬프트가 나타나며, 입력한 개수만큼만 프로세스를 표시합니다. 다음 예제는 한 번에 2개의 프로세스만 표시합니다.

Maximum tasks = 0, change to (0 is unlimited): 2
 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
 1309 geek 23 0 2483m 1.7g 27m S 0 21.8 45:31.32 gagent
 1882 geek 25 0 2485m 1.7g 26m S 0 21.7 22:38.97 gagent

14. 헤더 영역을 숨겨 더 많은 프로세스 표시하기

top은 기본적으로 창 높이에 맞춰 프로세스 개수를 표시합니다. 더 많은 프로세스를 확인하고 싶다면 상단 헤더 정보 중 일부를 제거하면 됩니다.

다음은 top이 기본적으로 제공하는 헤더 정보입니다.

top - 23:47:32 up 179 days, 3:36, 1 user, load average: 0.01, 0.03, 0.00
Tasks: 67 total, 1 running, 66 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.7% user, 1.2% system, 0.0% nice, 98.0% idle
Mem: 1017136k total, 954652k used, 62484k free, 138280k buffers
Swap: 3068404k total, 22352k used, 3046052k free, 586576k cached
  • l 키 – 부하 평균(load average) 표시/숨김. 첫 번째 헤더 라인입니다.
  • t 키 – CPU 상태 표시/숨김. 두 번째, 세 번째 헤더 라인입니다.
  • m 키 – 메모리 정보 표시/숨김. 네 번째, 다섯 번째 라인입니다.

15. top 설정 저장하기 – W 키

위 예제들에서 소개한 대화형 설정을 변경했다면, 앞으로도 계속 사용할 수 있도록 설정을 저장해 두는 것이 좋습니다. top 설정을 저장해 두면 다음에 top 명령어를 실행할 때 저장된 설정이 자동으로 적용됩니다.

설정을 저장하려면 W 키를 누르세요. 그러면 설정 파일이 ~/.toprc에 기록되며, 아래와 같이 저장 완료 메시지가 표시됩니다.

top - 23:47:32 up 179 days, 3:36, 1 user, load average: 0.01, 0.03, 0.00
Tasks: 67 total, 1 running, 66 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.7% user, 1.2% system, 0.0% nice, 98.0% idle
Mem: 1017136k total, 954652k used, 62484k free, 138280k buffers
Swap: 3068404k total, 22352k used, 3046052k free, 586576k cached
Wrote configuration to '/home/ramesh/.toprc'