서버 리소스 모니터링 명령어 (iostat · mpstat · top · htop)

반응형

서버 리소스 모니터링 명령어 (iostat · mpstat · top · htop)

서버 리소스 모니터링 명령어 정리(iostat · mpstat · top · htop)

서버 리소스 모니터링 명령어 정리 (iostat · mpstat · top · htop)

리눅스 서버에서 CPU, 메모리, 디스크 I/O, 장비별 성능 상태를 분석하려면 가장 기본적이면서도 강력한 도구가 바로 iostat, mpstat, top, htop이다. 여기서는 각 명령어의 핵심 기능과 실시간 모니터링 옵션까지 정리한다.

1️⃣ iostat — 디스크 I/O & CPU 사용률 분석

iostat는 디스크의 읽기/쓰기 처리량, 대기시간, 사용률, CPU 상태 등을 분석하는 명령어로 I/O 병목 분석에 필수다.

📌 주요 옵션 설명

  • -x: 확장(extented) 출력 — 디스크별 상세 수치 확인
  • -m: MB 단위 출력
  • -d: 디스크 통계만 출력
  • 숫자(초): 실시간 반복 간격

📌 자주 쓰는 실시간 모니터링 예시

iostat -xm 3

→ 디스크별 상세 I/O 통계를 MB 단위로 3초마다 출력

iostat -x 1 10

→ 1초 간격으로 10번 출력

iostat -d -m 5

→ 디스크 통계를 MB 단위로 5초 주기 출력

📌 체크 포인트

  • %util이 80~100%면 디스크 병목 가능성 높음
  • await가 20ms 이상이면 I/O 대기 발생
  • rMB/s / wMB/s 값으로 읽기·쓰기 트래픽 확인

2️⃣ mpstat — CPU 사용률 및 Core 분석

mpstat는 전체 CPU 또는 코어별 사용률을 상세하게 분석하는 도구이며, 멀티코어 환경에서 병목 코어를 찾는 데 매우 유용하다.

📌 주요 옵션

  • -P ALL: 모든 CPU 코어 사용률 출력
  • 숫자(초): 실시간 반복 간격

📌 실시간 모니터링 예시

mpstat -P ALL 2

→ 모든 CPU 코어 상태를 2초 간격으로 출력

mpstat 1 5

→ 1초 간격, 총 5번 출력

📌 체크 포인트

  • sys%가 높으면 커널/시스템 병목 가능
  • iowait%가 높으면 디스크 병목 가능
  • 특정 코어만 높은 사용률을 보이면 CPU 부하 분산 문제

3️⃣ top — 전체 리소스 실시간 모니터링

top은 CPU·메모리·프로세스의 전체 사용률을 실시간으로 확인하는 가장 기본 명령어이다.

📌 유용한 단축키

  • P: CPU 사용률 기준 정렬
  • M: 메모리 사용률 기준 정렬
  • 1: 코어별 CPU 사용률 표시
  • k: 특정 PID 종료
  • h: 도움말 표시

📌 예시

top

문제 상황에서는 load average, %CPU, %MEM, wa(Wait), running processes 등을 주로 확인한다.

4️⃣ htop — top의 확장형 실시간 터미널 UI

htop은 top보다 훨씬 직관적인 인터페이스를 제공하며 CPU·메모리·스왑·프로세스 상태를 컬러로 시각화하여 보여준다.

📌 기능 특징

  • 마우스로 프로세스 선택/종료 가능
  • 코어별 사용률 그래프 표시
  • tree 보기로 프로세스 구조 확인 가능
  • F6으로 다양한 정렬 기준 선택

📌 실행 예시

htop

설치되어 있지 않다면 다음으로 설치:

yum install htop -y   # RHEL/CentOS/Rocky
apt install htop -y   # Ubuntu/Debian

5️⃣ 실시간 전체 모니터링 자동화 예시

아래처럼 세 가지 명령어를 동시에 실행해 서버 병목을 빠르게 확인할 수 있다.

iostat -xm 3 &  
mpstat -P ALL 3 &  
top

또는 tmux or screen에 나누어 배치할 수도 있다.

6️⃣ 실전 점검 시나리오

  • CPU 100% → mpstat로 특정 코어 확인 → top으로 해당 프로세스 식별
  • I/O 지연 → iostat await·%util 확인 → 디스크 병목 여부 판단
  • 메모리 부족 → top/htop에서 swap 사용량 및 %MEM 확인
  • 전체 부하 증가 → load average 비교 및 running task 확인

위 명령어만 잘 활용해도 대부분의 서버 성능 문제는 빠르게 원인을 좁힐 수 있다.

반응형
LIST