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 | 부팅 이후 누적 합계 |
| %iowait | I/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
핵심 요점
스토리지 스트레스의 두 가지 메커니즘:
- 빈번한 읽기/쓰기 작업 (높은 TPS)
- 작업당 대용량 데이터 전송 (높은 kB 값)
iostat으로 시스템 전체 메트릭을, pidstat으로 프로세스 수준 식별을 결합하여 스토리지 성능 문제를 효율적으로 진단하고 해결합니다.