이 글은 특정 명령어나 기능에 대해 15가지 예제를 소개하는 15 예제 시리즈의 연재물입니다. 이 시리즈에서는 앞서 find 명령어, crontab 예제, grep 명령어, history 명령어, ping 명령어, wget 예제 등을 다룬 바 있습니다.
이번 글에서는 초보자와 전문가 모두에게 유용하게 활용할 수 있는 리눅스 top 명령어의 15가지 예제를 살펴보겠습니다.
1. 원하는 컬럼 기준으로 프로세스 정렬하기 – O 키
top 명령어는 기본적으로 CPU 사용량 순으로 프로세스를 표시합니다. top 실행 중에 M(대문자)을 누르면 아래와 같이 메모리 사용량 기준으로 정렬된 결과를 볼 수 있습니다.

그림: 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 키를 누르면 아래와 같이 현재 실행 중인 프로세스가 색상으로 강조되어 한눈에 구분됩니다.

그림: 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'