Aller au contenu principal

62. Monitor Storage Performance


개요

CPU 및 RAM 사용량을 추적하는 것처럼 스토리지 장치 성능을 모니터링합니다. CPU 사용률이 100%를 지속하면 성능이 저하되듯, 스토리지 과부하도 병목 현상을 일으킵니다.

모니터링 도구 설치

sysstat 패키지에는 스토리지 분석을 위한 필수 유틸리티가 포함되어 있습니다:

sudo apt install sysstat

포함 도구:

  • iostat: 데이터 읽기/쓰기 작업의 입출력 통계 모니터링
  • pidstat: 스토리지와 상호 작용하는 프로세스의 통계 표시 (무거운 I/O 부하를 만드는 프로세스 식별)

iostat 출력 이해

iostat를 인수 없이 실행하면 시스템 부팅 이후 스토리지 사용량 요약을 표시합니다.

주요 메트릭:

메트릭설명
TPS초당 전송 수 (I/O 작업 수)
kB_read/s, kB_wrtn/s초당 읽기/쓰기 평균 킬로바이트
kB_read, kB_wrtn부팅 이후 누적 합계
%iowaitI/O 작업을 기다리는 CPU 비율

표시된 값은 순간 측정이 아닌 시스템 가동 시간 동안의 평균입니다.

테스트 부하 시나리오 생성

스토리지 스트레스를 시연하기 위해 dd 명령어로 지속적인 쓰기 작업 생성:

dd if=/dev/zero of=DELETEME bs=1 count=1000000 oflag=dsync &

파라미터 설명:

  • if=/dev/zero: 무한 0 스트림 소스
  • of=DELETEME: 출력 파일 목적지
  • bs=1: 1바이트 블록 크기
  • count=1000000: 백만 번 쓰기 작업
  • oflag=dsync: 실제 디스크 쓰기 강제 (캐싱 우회)
  • &: 백그라운드 실행

실시간 활동 모니터링:

iostat 1   # 1초마다 갱신

문제 프로세스 식별

iostat에서 높은 쓰기 활동이 보이지만 원인 프로세스를 알 수 없을 때 pidstat 사용:

pidstat -d

프로세스 ID별 I/O 통계를 표시하여 스토리지 스트레스를 유발하는 프로세스를 밝힙니다.

연속 모니터링:

pidstat -d 1

출력 컬럼:

  • kB_rd/s: 초당 읽은 킬로바이트
  • kB_wr/s: 초당 쓴 킬로바이트
  • iodelay: I/O 지연 시간

Device Mapper (dm-0) 이해

Device Mapper(DM)는 LVM이 스토리지 볼륨을 관리하는 데 사용됩니다. 매핑 식별:

sudo dmsetup info /dev/dm-0
sudo lsblk

프로세스 관리

프로세스의 전체 명령어 확인:

ps -ef | grep [PID]

정상 종료:

kill [PID]

강제 종료 (최후 수단):

kill -9 [PID]

유용한 명령어 옵션

iostat 옵션:

iostat -d      # 장치 사용률만 (CPU 통계 제외)
iostat -h # 사람이 읽기 쉬운 형식
iostat -p ALL # 파티션 통계 표시

pidstat 옵션:

pidstat -d       # I/O 통계만
pidstat --human # 사람이 읽기 쉬운 형식

자세한 문서: man iostat, man pidstat

핵심 요점

스토리지 스트레스의 두 가지 메커니즘:

  1. 빈번한 읽기/쓰기 작업 (높은 TPS)
  2. 작업당 대용량 데이터 전송 (높은 kB 값)

iostat으로 시스템 전체 메트릭을, pidstat으로 프로세스 수준 식별을 결합하여 스토리지 성능 문제를 효율적으로 진단하고 해결합니다.