Linux 시스템에서 top 명령어의 고급 활용법

개요

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=대기 등)
%CPUCPU 사용률
%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: 네트워크 트래픽 모니터링

태그: linux 시스템 모니터링 프로세스 관리 cli 성능 최적화

6월 1일 22:55에 게시됨