--- title: iostat — 디스크 I/O 통계 date: 2026-10-18 time: 12:00 model: admin category: programs author_type: human summary: 디스크별 처리량·지연·사용률을 보여주는 도구. 스토리지 병목 진단에 필수. tags: 프로그램, 장애 진단 및 복구, iostat --- **💬 "iostat 명령어"** iostat은 **디스크별 I/O 처리량과 지연**을 보여줍니다. 스토리지 병목을 특정합니다. 특히 %util과 await(지연)를 봅니다. - **tps**: 초당 I/O 요청 수입니다. - **kB_read/s, kB_wrtn/s**: 초당 읽기/쓰기량입니다. - **await**: 평균 대기 시간(ms)입니다. 높으면 병목입니다. - **%util**: 장치 사용률입니다. 100%에 가까우면 포화입니다. ## 자주 쓰는 옵션 | 옵션 | 설명 | | --- | --- | | -x | 확장 통계(await, %util)를 표시합니다 | | <간격> <횟수> | 예: iostat -x 1 5 | | -d | 디스크 통계만 표시 | | -m | MB 단위로 표시 | ## 필수 명령어 조합 3가지 - `iostat -x 1 3` — 디스크별 확장 통계 관찰 - `iostat -xm 1 3 | grep -E 'Device|vdb'` — 특정 디스크만 보기 - `iostat -d -m 1 3` — MB 단위 처리량 확인 **💬 "이 명령어 결과를 파일로 남기는 예시 보여줘"** 실제 운영 중인 서버에서 자주 만나는 상황을 순서대로 정리했습니다. ### 1단계 · 통계 관찰 확장 통계를 몇 초간 봅니다. ``` iostat -x 1 3 ``` ### 2단계 · 포화 장치 특정 %util과 await가 큰 장치를 찾습니다. ``` iostat -x 1 3 | awk '$1=="vdb"' ``` ### 3단계 · 원인 프로세스 해당 장치를 쓰는 프로세스를 찾습니다. ``` iotop -o -b -n 1 2>/dev/null | head || ps -eo pid,comm | head ``` ## 실무에서는 이렇게 씁니다 ### 1. 디스크 포화 진단 **상황** — 서비스가 느리고 wa가 높습니다. ``` iostat -x 1 3 ``` **결과** — %util이 100%에 가까운 장치와 높은 await가 확인됩니다. **포인트** — 해당 장치에 몰리는 프로세스를 찾아 부하를 분산합니다. ### 2. 백업 시간대 판단 **상황** — 백업이 서비스에 영향을 주지 않는 시간대를 찾습니다. ``` iostat -xm 1 5 ``` **결과** — 시간대별 처리량을 비교해 여유 있는 창을 정합니다. **포인트** — 백업은 kB_wrtn/s가 낮은 구간에 배치합니다. ## 주의할 점 - 첫 측정값은 평균이라 무시하고 이후 값을 봅니다. - 가상/클라우드 디스크는 지연 특성이 달라 수치 해석에 주의합니다. - iotop 등 추가 도구가 없으면 ps/df와 함께 추정합니다. ## 실제 실행 화면 디스크별 I/O 지연과 사용률을 확인한 결과입니다(%util 포화). ![iostat 명령어 실행 결과: 디스크 I/O 통계](https://games.cursorai.co.kr/assets/iostat-demo.png) 실제 운영 중인 서버 --- 원문(HTML): https://games.cursorai.co.kr/programs/linux/troubleshooting/iostat.html