개요
Linux 환경에서 실시간 시스템 모니터링을 수행하는 데 가장 널리 사용되는 명령어 중 하나인 top은 실행 중인 프로세스 정보, CPU 사용률, 메모리 소비량, 시스템 부하 등 핵심 성능 지표를 동적으로 표시합니다.
기본 사용법
top [옵션]
인터페이스 구성 요소
시스템 정보 영역 (상단 5행)
top - 14:30:25 up 10 days, 5:42, 2 users, load average: 0.15, 0.25, 0.30
Tasks: 287 total, 1 running, 286 sleeping, 0 stopped, 0 zombie
%Cpu(s): 5.2 us, 2.1 sy, 0.0 ni, 92.5 id, 0.2 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 16384.0 total, 2048.5 free, 8192.3 used, 6143.2 buff/cache
MiB Swap: 4096.0 total, 4096.0 free, 0.0 used. 7680.1 avail Mem
- 첫 번째 줄: 시스템 시간 및 로드 평균값
- 두 번째 줄: 프로세스 통계 (총 프로세스 수, 실행 중인 프로세스 수 등)
- 세 번째 줄: CPU 사용률 분석 (사용자 공간, 커널 공간 등)
- 네 번째 줄: 메모리 상태 (총 메모리, 자유 메모리, 사용 중 메모리 등)
프로세스 목록 영역
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
12345 root 20 0 162.5m 12.3m 8.9m S 2.3 0.8 0:05.67 oracle
| 항목 | 설명 |
|---|---|
| PID | 프로세스 식별자 |
| USER | 프로세스 소유자 |
| VIRT | virtually 할당된 메모리 |
| RES | 실제 물리 메모리 사용량 |
| S | 프로세스 상태 (R=실행, S=대기 등) |
| %CPU | CPU 사용률 |
| %MEM | 메모리 사용률 |
| TIME+ | 누적 CPU 소요 시간 |
| COMMAND | 실행 명령어 |
주요 옵션
# 특정 사용자 프로세스만 표시
top -u username
# 특정 PID 프로세스 모니터링
top -p 1234
# 스크립트용 비호환 모드
top -b
# 재생 횟수 제한 후 종료
top -n 5
# 갱신 주기 설정 (초 단위)
top -d 2
인터랙티브 기능
- 종료: q 키 입력
- 도움말: h 또는 ? 키 입력
- 정렬 조절: P(%)CPU, M(%)MEM, T(누적 시간), N(PID) 등
- 프로세스 관리: k(종료), r(우선순위 변경), u(특정 사용자 필터)
- 디스플레이 조정: 1(코어 정보), t(공간 형식), m(메모리 형식) 등
실무 활용 사례
1. 시스템 모니터링
top -d 2 # 2초 간격으로 지속 모니터링
top -n 10 -d 5 # 5초 간격으로 10회 실행 후 종료
2. 문제 진단
# CPU 사용량 상위 프로세스 확인
top
# 이후 P 키로 정렬 조정
# 메모리 사용량 상위 프로세스 확인
top -o %MEM # 직접 명령어로 실행 가능
3. 데이터베이스 운영
# Oracle 관련 프로세스 모니터링
top -u oracle
# 결과 파일로 출력
top -b -n 1 -u oracle > oracle_performance.txt
4. 서버 유지보수
# 시스템 상태 요약
top -b -n 1 | head -10
# 이상 프로세스 검색
top -b -n 1 | grep -E "(zombie|stopped)"
고급 기능
- 필드 커스터마이징: f 키로 열 선택 및 제거 가능
- 설정 저장: W 키로 ~/.toprc 파일에 저장
- 다중 코어 모니터링: 1 키로 CPU 디스플레이 전환
- 프로세스 트리: V 키로 부모-자식 관계 시각화
성능 최적화 팁
- 로드 평균 분석: CPU 코어 수 대비 값 확인
- CPU 사용률: us(사용자), sy(커널), wa(IO 대기) 분석
- 메모리 관리: free/available 비율 확인
- 교차 분석: swap 사용량과의 상관관계 파악
참고 사항
- root 권한이 필요한 정보가 존재
- 높은 갱신 주기 시 시스템 부하 증가 가능성
- 즉시 데이터는 추세 분석에 적합하지 않음
- OS 버전별 차이 존재
대체 도구
- htop: 더 직관적인 인터페이스 제공
- atop: 세부적인 시스템 모니터링 기능
- iotop: I/O 사용량 분석
- nethogs: 네트워크 트래픽 모니터링