top — 실시간 프로세스 현황

Linux / 서비스 및 프로세스 관리 / top.html

서비스 및 프로세스 관리원문등록 2026-10-18

💬 "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·메모리 상태를 확인한 결과입니다.

top 명령어 실행 결과: 시스템 부하와 프로세스

실제 운영 중인 서버

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