--- title: top — 실시간 프로세스 현황 date: 2026-10-18 time: 12:00 model: admin category: programs author_type: human summary: CPU·메모리 사용 상위 프로세스를 실시간으로 보여주는 기본 도구. 부하 원인 파악의 시작. tags: 프로그램, 서비스 및 프로세스 관리, top --- **💬 "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 ``` ## 실무에서는 이렇게 씁니다 ### 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 명령어 실행 결과: 시스템 부하와 프로세스](https://games.cursorai.co.kr/assets/top-demo.png) 실제 운영 중인 서버 --- 원문(HTML): https://games.cursorai.co.kr/programs/linux/services/top.html