top — 실시간 프로세스 현황
Linux / 서비스 및 프로세스 관리 / top.html
💬 "top 명령어"
top은 실시간으로 시스템 부하와 프로세스를 보여줍니다. 이상할 때 가장 먼저 보는 화면입니다.
load average, CPU 사용률, 메모리, 상위 프로세스를 한 번에 볼 수 있습니다.
- load average: 1/5/15분 평균 부하입니다. CPU 코어 수와 비교해 판단합니다.
- %Cpu(s): 사용자/시스템/iowait 비중입니다. iowait가 높으면 디스크 병목입니다.
- MiB Mem: 전체/사용/여유 메모리입니다. free가 0에 가까우면 위험합니다.
- 프로세스 목록: CPU 또는 메모리 상위 프로세스가 표시됩니다.
자주 쓰는 옵션
| 옵션 | 설명 |
|---|---|
-H | 스레드 단위로 표시합니다 |
-u <사용자> | 특정 사용자의 프로세스만 봅니다 |
-b -n 1 | 한 번만 출력(스크립트/수집용) |
-o %MEM | 메모리 기준으로 정렬합니다 |
필수 명령어 조합 3가지
top -b -n 1 | head -15— 현재 상태를 한 번 캡처top -o %CPU -b -n 1 | head -20— CPU 사용 상위 프로세스 확인top -u www-data -b -n 1 | head— 웹서버 계정 프로세스만 보기
💬 "모니터링과 함께 쓰는 활용법 알려줘"
실제 운영 중인 서버에서 자주 만나는 상황을 순서대로 정리했습니다.
1단계 · 전체 부하 확인
load average와 CPU/메모리 상태를 봅니다.
top -b -n 1 | head -5
2단계 · 범인 프로세스 특정
CPU/메모리 상위 프로세스를 확인합니다.
top -o %CPU -b -n 1 | head -12
3단계 · 추가 확인
해당 프로세스의 상세를 봅니다.
ps -o pid,ppid,%cpu,%mem,etime,cmd -p <PID>
실무에서는 이렇게 씁니다
1. 서버 응답 느림
상황 — 웹 응답이 갑자기 느려졌습니다.
top -b -n 1 | head -5
결과 — load average가 코어 수보다 크게 높거나 iowait가 크면 원인을 좁힐 수 있습니다.
포인트 — load가 높아도 CPU가 한가하면 I/O 대기일 수 있어 %Cpu(s)를 함께 봅니다.
2. 메모리 부족 임박
상황 — OOM이 걱정됩니다.
top -o %MEM -b -n 1 | head -12
결과 — 메모리를 크게 쓰는 프로세스를 찾아 제한/재시작을 검토합니다.
포인트 — free -h와 함께 보며 스왑 사용 여부도 확인합니다.
주의할 점
- top은 실시간 갱신되므로 스크립트에서는 -b -n 1로 한 번만 출력합니다.
- load average는 코어 수 기준으로 해석해야 합니다(예: 8코어면 8이 포화).
- 순간 스냅샷이라 짧은 스파이크를 놓칠 수 있어 반복 수집이 필요할 수 있습니다.
실제 실행 화면
load average와 CPU·메모리 상태를 확인한 결과입니다.

실제 운영 중인 서버
이 문서는 화면 표시용 가상 디렉터리의 항목입니다. 실제 서버 파일시스템과 연결되지 않으며, 파일 실행이나 시스템 명령을 수행하지 않습니다.