4.2 iostat과 latency 해석
iostat -xz는 장치별 요청률, throughput, 평균 요청 크기, queue와 latency를 묶어 봅니다.
iostat -xz 1
pidstat -d 1
cat /proc/pressure/io
주요 지표는 환경의 sysstat version에 따라 이름이 조금 다릅니다.
r/s,w/s: 초당 read와 write 요청rkB/s,wkB/s: throughputr_await,w_await: queue를 포함한 평균 latencyaqu-sz: 평균 queue 크기%util: 장치가 요청을 처리한 시간 비율
평균 await가 낮아도 tail latency가 나쁠 수 있습니다. Database의 p95와 p99 commit latency와 storage platform metric을 함께 봅니다. 요청 merge, multipath, virtualized storage는 device 출력의 의미를 바꿉니다.
안전한 부하 실험
fio는 filesystem과 storage를 실제로 사용합니다. 운영 data directory나 같은 volume에서 실행하지 않습니다. 별도 test volume에서 block size, read/write ratio, queue depth, sync 조건을 workload와 맞춥니다.
실험 전 확인: target path, filesystem, 남은 용량, snapshot, I/O limit
실험 중 확인: database latency, device await, queue, error
중단 기준: latency budget 초과 또는 error 발생
I/O error는 dmesg 또는 kernel journal에서도 확인합니다.
journalctl -k --since '-1 hour' | grep -Ei 'i/o error|timeout|reset|nvme|scsi'