소개
Linux iostat은 Linux 시스템의 디스크 Input/Output(입/출력) 성능에 대한 유용한 통찰력을 제공하는 강력한 명령줄 서비스 입니다. 이 패키지를 사용하면 디스크 사용률, 처리량,지연 시간 등 다양한 디스크 관련 통계를 모니터링하고 분석할 수 있습니다. 이 글은 iostat와 주요 기능에 익숙해져 디스크 성능을 최적화하고 잠재적인 병목 현상을 식별하는 데 이 서비스를 활용할 수 있도록 하는 것을 목표로 합니다.
iostat이란?
iostat은 Linux에서 시스템 리소스 통계를 수집하고 보고하는 sysstat 패키지의 일부입니다. 특히 iostat은 디스크 I/O 통계에 중점을 둡니다. 실시간 데이터와 과거 데이틀 모두 제공하므로 특정 시점의 디스크 활동을 보거나 특정 기간 동안의 추세를 분석할 수 있습니다.
iostat 설치하기
시스템에서 sysstat 패키지가 설치되어 있지 않은 경우에 다름 단계에 따라 쉽게 설치할 수 있습니다.
Debian/Ubuntu : sudo apt-get install sysstat
CentOS/RHEL/Rocky : yum install sysstat
iostat 사용법
sysstat설치가 완료되면 다음 명령을 사용하여 iostat를 실행할 수 있습니다
iostat [옵션][간격][숫자]
기본적으로 iostat은 CPU 정보와 함께 시스템에 마운트되어 있는 디바이스의 정보를 함께 표시합니다.
옵션 : 다양한 명령 옵션을 사용하여 출력을 사용자 지정할 수 있습니다.
간격 : 각 출력 값 업데이트 사이의 시간 간격을 지정합니다.
숫자 : 종료하기 전에 표시할 업데이트 수를 나타냅니다.
iostat에서 제공하는 정보
iostat은 디스크 I/O 성능을 알 수 있는 몇 가지 중요한 정보를 제공합니다.
CPU 관련 정보
%user CPU가 User 모드에서 사용된 시간의 비율
%nice | 작업 우선순위 정책에 의해 우선순위가 바뀐 프로세스가 사용한 시간의 비율 |
%system | CPU가 시스템 모드에서 사용된 시간의 비율 |
%iowait | 디스크 입출력을 기다리는데 사용된 시간의 비율 |
%steal | Steal CPU의 작동 시간 |
%idle | 디스크 입출력을 대기하지 않은 대기 상태의 시간 비율 |
디스크 드라이브 관련 정보
tps | 디스크 디바이스에서 초당 처리한 입출력 작업의 개수 |
Blk_read/s | 디스크에서 초당 읽어들인 블럭의 개수 |
Blk_wrtn/s | 디스크로 초당 쓰여진 블럭의 개수 |
Blk_read | 총 읽어들인 블럭 개수 |
Blk_wrtn | 총 쓰여진 블럭 개수 |
kB_read/s | 디스크로부터 읽은 데이터의 양 (초당 킬로바이트) |
kB_wrtn/s | 디스크로 쓰여진 데이터의 양 (초당 킬로바이트) |
kB_read | 디스크로부터 읽은 데이터의 총량 (킬로바이트) |
kB_wrtn | 디스크로부터 쓰여진 데이터의 총량( 킬로바이트) |
MB_read/s | 디스크로부터 읽는 데이터의 양 (초당 메가바이트) |
MB_wrtn/s | 디스크로부터 쓰여진 데이터 양 (초당 메가바이트) |
MB_read | 디스크로부터 읽은 데이터의 총량 (메가바이트) |
MB_wrtn | 디스크로부터 쓰여진 데이터의 총량 (메가바이트) |
rrqm/s | 디바이스 큐에 대기중인 초당 읽기 요청의 건수 |
wrqm/s | 디바이스 큐에 대기중인 초당 쓰기 요청의 건수 |
r/s | 디바이스에 요청한 초당 읽기 요청의 건수 |
w/s | 디바이스에 요청한 초당 쓰기 요청의 건수 |
rsec/s | 디바이스에서 초당 읽어들인 섹터의 개수 |
wsec/s | 디바이스로 초당 기록한 섹터의 수 |
rkB/s | 디바이스에서 읽어들인 초당 데이터의 양 (킬로바이트) |
wkB/s | 디바이스로 쓴 초당 데이터의 양 (킬로바이트) |
rMB/s | 디바이스에서 읽어들인 초당 데이터의 양 (메가바이트) |
wMB/s | 디바이스로 쓴 초당 데이터의 양 (메가바이트) |
avgrq-sz | 디바이스에 요청한 초당 평균 데이터의 크기 |
avgqu-sz | 디바이스에 요청한 초당 평균 큐 길이 |
await | 디바이스에서 처리되기 위해서 요청된 입출력의 평균 시간. (큐에서 소요된 시간과 처리된 시간이 합쳐져 출력) |
svctm | 디바이스에서 처리한 입출력의 평균 시간 |
%util | 디바이스에서 요청한 입출력 작업을 수행하기 위해 사용한 CPU 시간의 비율. 이 값이 100%에 근접할 경우 디바이스가 Saturation(한계에 도달) 되었다고 판단할 수 있음. |
예시
낮은 tps에 높은 %util : 디스크가 포화 상태여서 워크로드를 따라잡지 못하고 있음을 나타냅니다. 스토리지 시스템을 업그레이드하거나 I/O패턴을 촤적화하는 것이 좋습니다.
높은 avgrq-sz 및 await : 대기 중인 요청이 많으며, 잠재적으로 많은 I/O 트래픽으로 인한 것일 수 있습니다. 에플리케이션 동작을 분석하고 I/O 매개변수 조정을 고려하세요.
낮은 %util에 높은 await : 하드웨어 문제 또는 잘못된 구성으로 인해 디스크의 응답 시간이 느려질 수 있음을 의미합니다. 디스크 상태와 연결성을 조사하세요.
iostat 명령어 옵션
옵션 설명
-c | cpu 사용량 출력 |
-d | 디스크 사용량 출력 |
-k | 블럭 단위에서 킬로바이트로 정보 출력 |
-m | 블럭 단위에서 메가바이트로 정보 출력 |
-p | 파티션 당 통계 포함 |
-t | 타임스테프 출력 |
-x | 확장 정보 |
-z | 사용량이 0인 정보는 제외 |
결론
Linux iostat은 Linux 시스템에서 디스크 I/O 성능을 모니터링하고 문제를 해결하는 데 유용한 도구입니다. 출력을 이해하고 주요 정보를 해석함으로써 다음과 같은 잠재적인 문제를 식별할 수 있습니다.
'IT정보' 카테고리의 다른 글
서브네팅(Subnetting) (0) | 2023.09.06 |
---|---|
유니트렌드 Quiesce 세팅 (0) | 2023.08.16 |
백업 이란? (0) | 2023.07.06 |
Iperf3 (0) | 2023.06.27 |
백업 방식 [Computing Deltas - near-Continuous (CDP)] (0) | 2023.06.22 |