본문 바로가기
  • ANALOG CODE
  • AnalogCode
인프라

디스크 사용량 모니터링 iostat 명령어 정리

by 아날로그코더 2023. 4. 26.
반응형

데이터베이스와 같은 프로그램을 사용하다보면 디스크 I/O를 모니터링 해야될 필요가 생긴다. 이때 iostat 명령어를 이용하여 다양한 I/O 측정값들을 실시간으로 볼 수 있다. iostat명령어가 어떤 값들을 출력해주는지와 사용법을 간단히 정리해 놓았다.
 

디스크 I/O

일단 디스크 I/O가 어떤식으로 처리되는지를 간단히 보자.디스크 I/O의 처리 순서는 아래와 같다.

  1. 응용 프로그램이 디스크 I/O 요청을 생성합니다.
  2. 운영 체제는 디스크 I/O 요청을 처리하기 위해 커널 수준의 I/O 스케줄러를 사용합니다.
  3. I/O 스케줄러는 디스크 I/O 요청을 대기열에 추가하고, 이를 처리하기 위해 디스크 드라이버에 전달합니다.
  4. 디스크 드라이버는 요청된 작업을 처리하기 위해 하드웨어 인터페이스를 사용하여 디스크 컨트롤러와 통신합니다.
  5. 디스크 컨트롤러는 디스크에서 데이터를 읽거나 쓰는 작업을 수행합니다.
  6. 작업이 완료되면 디스크 컨트롤러는 디스크 드라이버에 결과를 전달하고, 디스크 드라이버는 이를 I/O 스케줄러에 알립니다.
  7. I/O 스케줄러는 대기열에서 다음 작업을 선택하고 처리합니다.
Disk I/O

 
Disk로 IO요청을 하면 (Issue) I/O Queue에대기하다가 순서가 되면 I/O가 실행되고 완료된다.

 

iostat

Input / Output 디바이스를 모니터링 하는 명령어이다. 장치 단위로 통계를 보여준다.
I/O 균형을 유지할 수 있도록 시스템 설정을 바꾸는데 도움이 되는 보고서를 생성한다.
iostat은 부팅이후부터 시작된 통계를 표시한다. interval을 주면 그 시간 간격 사이의 통계를 표시한다.
 
 

출력값

iostat 명령어의 결과로 출력해주는 모든 통계값이다. 옵션에 따라 출력되는 값이 선택된다.

tps초당 IO 요청 수
kB_read/s초당 읽기 block 수
kB_wrtn/s초당 쓰기 block 수
kB_dscd/s초당 버린 block 수
kB_w+d/s초당 쓰기 또는 버림 block 수
kB_read읽기 block 전체 수
kB_wrtn쓰기 block 전체 수
kB_dscd버림 block 전체 수
kB_w+d쓰기 + 버림 block 전체 수
r/s초당 완료된 읽기 요청 수
w/s초당 완료된 쓰기 요청 수
d/s초당 완료된 버림 요청 수
f/s초당 완료된 flush 요청 수
sec/s초당 읽기,쓰기, 버림 sector 수
rsec/s초당 읽기 sector 수
wsec/s초당 쓰기 sector 수
dsec/s초당 버림 sector 수
rqm/sDevice Queue에 대기중인 초당 IO요청 수
rrqm/sDevice Queue에 대기중인 초당 읽기 요청 수
wrqm/sDevice Queue에 대기중인 초당 쓰기 요청 수
drqm/sDevice Queue에 대기중인 버림 요청 수
%rrqm장치로 보내기 전의 읽기 비율
%wrqm장치로 보내기 전의 쓰기 비율
%drqm장치로 보내기 전의 버림 비율
areq-szIO요청의 평균 사이즈 (kb)
rareq-sz읽기요청의 평균 사이즈(kb)
wareq-sz쓰기 요청의 평균 사이즈 (kb)
dareq-sz버림 요청의 평균 사이즈 (kb)
awaitIO 요청이 처리되기까지의 평균 시간(millisecond). Queue 대기시간포함
r_await읽기 요청이 처리 완료된 평균 시간(millisecond). Queue 대기시간포함
w_await쓰기 요청이 처리 완료된 평균 시간(millisecond). Queue 대기시간포함
d_await버림 요청이 처리 완료된 평균 시간(millisecond). Queue 대기시간포함
f_awaitflush 요청이 처리 완료된 평균 시간(millisecond). Queue 대기시간포함
apu-szaverage queue length of request. 평균 I/O Queue 길이
%utilIO 요청을 처리 시간 비율 (장치의 대역폭 이용률). 100%면 장치가 포화상태임

 

옵션

-cCPU 이용률 보기
-d장치 이용률 보기
-h--human --pretty 와 같음
--human사이즈를 사람이 보기 편하게 표시. ( 1.0k, 1.2M처럼 크기 단위를 표시)
--pretty출력을 사람이 보기 편하게 표시. 항목이 많으면 sub-report 형식으로 표시
--compactsub-report로 쪼개지 않고 한줄로 표시
-kkilobytes 단위로 표시
-mmegabytes 단위로 표시
-o JSONJSON 포맷으로 표시
-s80자의 짧은 버전으로 표시
-t시간을 같이 표시
-V버전 표시
-x확장된 통계 표시
-y부팅이후의 통계 표시를 생략한다.
-z활동이 없는 디바이스는 출력하지 않음

 

interval count

interval 초 간격으로 count 개수만큼 출력

// 1초 간격으로 10번 출력한다.
$ iostat 1 10

// 5초 간격으로 2번 출력한다.
$ iostat 5 2

 
 

명령어

iostat   option  interval   count

 
 
- 전체적인 tps 및 사이즈를 1초단위로 계속 출력해주는 명령

$ iostat -d 1

 
 
 
- 세부정보를 1초단위로 계속 출력해주는 명령

$ iostat -dxz 1

 

반응형

'인프라' 카테고리의 다른 글

Gitlab Pages 에 Custom Domain 연결하기  (2) 2023.06.28
AWS EC2 범용 인스턴스 타입 비교 (T vs M)  (5) 2023.05.10

댓글