>시스템 튜토리얼 >리눅스 >iostat 명령을 사용하여 Linux 디스크 성능 이해

iostat 명령을 사용하여 Linux 디스크 성능 이해

WBOY
WBOY앞으로
2023-12-29 09:11:581194검색

소개

iostat는 주로 시스템 장치의 IO 부하를 모니터링하는 데 사용됩니다. iostat를 처음 실행하면 시스템 시작 이후의 다양한 통계 정보가 표시됩니다. 이후 iostat를 실행하면 명령이 마지막으로 실행된 이후의 통계 정보가 표시됩니다. 사용자는 통계 횟수와 시간을 지정하여 필요한 통계 정보를 얻을 수 있습니다.

문법

iostat [ -c ] [ -d ] [ -h ] [ -N ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -z ] [ 장치 [...] | ] [ -p [ 장치 [,...] ALL ] ] [ 간격 [ 개수 ] ]

시작하기

으아악

매개변수 -d는 장치(디스크) 사용 상태가 표시됨을 나타냅니다. -k 블록을 단위로 사용하는 일부 열은 강제로 킬로바이트를 단위로 사용함을 나타냅니다. 2는 데이터 표시가 2초마다 새로 고쳐짐을 나타냅니다.

출력정보의 의미

tps: 장치에 발행된 초당 전송 수를 나타냅니다. "한 번의 전송"은 "한 번의 I/O 요청"을 의미합니다. 여러 논리적 요청을 "하나의 I/O 요청"으로 결합할 수 있습니다. "1회 전송" 요청의 크기는 알 수 없습니다.

kB_read/s: 초당 장치에서 읽은 데이터 양(드라이브 표현)
kB_wrtn/s: 초당 장치에 기록된 데이터 양(드라이브 표현)
kB_read: 읽은 총 데이터 양입니다. kB_wrtn: 기록된 총 데이터 양은 킬로바이트입니다.

위의 예에서 디스크 sda와 다양한 파티션의 통계를 볼 수 있습니다. 당시 계산된 디스크의 총 TPS는 39.29입니다. 다음은 각 파티션의 TPS입니다. (순간적인 값이기 때문에 총 TPS는 각 파티션의 TPS의 합과 엄밀히 동일하지는 않습니다.)

모니터링되는 장치의 이름을 sda로 지정합니다. 이 명령의 출력은 위 명령과 정확히 동일합니다.

iostat -d sda 2

기본적으로 모든 하드 디스크 장치를 모니터링하고 이제는 sda만 모니터링합니다.

-x 매개변수

iostat에는 io와 관련된 확장 데이터를 표시하는 데 사용되는 더 일반적으로 사용되는 -x 옵션도 있습니다.
으아악

출력정보의 의미

rrqm/s: 이 장치와 관련된 읽기 요청이 초당 병합되는 횟수(시스템 호출이 데이터를 읽어야 할 때 VFS는 각 FS에 요청을 보냅니다. FS가 서로 다른 읽기 요청을 발견하면 동일한 데이터에 대해 읽습니다) 블록, FS는 요청을 병합으로 병합합니다) wrqm/s: 이 장치와 관련된 쓰기 요청이 초당 병합됩니다.


rsec/s: 초당 읽은 섹터 수
wsec/: 초당 작성된 섹터 수입니다.
rKB/s: 초당 장치에 발행된 읽기 요청 수
wKB/s: 초당 장치에 발행된 쓰기 요청 수
avgrq-sz 평균 요청 섹터 크기
avgqu-sz는 평균 요청 대기열 길이입니다. 대기열 길이가 짧을수록 좋다는 것은 의심의 여지가 없습니다.
wait: 각 IO 요청의 평균 처리 시간(단위는 마이크로초와 밀리초) 이는 IO 응답 ​​시간으로 이해될 수 있습니다. 일반적으로 시스템 IO 응답 ​​시간은 5ms보다 작아야 합니다.
이 시간에는 대기열 시간과 서비스 시간이 포함됩니다. 즉, 일반적인 상황에서는 대기 시간이 svctm보다 큽니다. 그 차이가 작을수록 대기열 시간이 길어집니다. 시간이 지나면 시스템에 문제가 발생했음을 나타냅니다.
svctm은 각 장치 I/O 작업의 평균 서비스 시간(밀리초)을 나타냅니다. svctm의 값이 wait에 매우 가까우면 대기 중인 I/O가 거의 없다는 의미이며, wait의 값이 svctm의 값보다 훨씬 높으면 I/O가 매우 좋다는 의미입니다. O 대기열 대기 시간이 너무 길어 시스템에서 실행 중인 응용 프로그램의 속도가 느려집니다.
%util: 통계 시간 내 모든 처리 IO 시간을 전체 통계 시간으로 나눈 값입니다. 예를 들어 통계 간격이 1초이고 장치가 0.8초 동안 IO를 처리하고 0.2초 동안 유휴 상태인 경우 장치의 %util = 0.8/1 = 80%이므로 이 매개변수는 장치가 얼마나 바쁜지를 나타냅니다
. 일반적으로 이 매개변수가 100%이면 장치가 전체 용량에 가깝게 실행되고 있음을 의미합니다(물론 디스크가 여러 개 있는 경우 %util이 100%라도 디스크 동시성으로 인해 디스크 사용량이 병목 현상이 되지 않을 수 있음) 능력).

-c 매개변수

iostat를 사용하여 CPU 상태 값의 일부를 얻을 수도 있습니다:

iostat -c 1 10

평균 CPU: %user %nice %sys %iowait %idle
1.98 0.00 0.35 11.45 86.22
평균 CPU: %user %nice %sys %iowait %idle
1.62 0.00 0.25 34.46 63.67

일반적인 사용법

iostat -d -k 1 10 #TPS 및 처리량 정보 보기(디스크 읽기 및 쓰기 속도 단위는 KB)

iostat -d -m 2 #TPS 및 처리량 정보 보기(디스크 읽기 및 쓰기 속도(MB))
iostat -d -x -k 1 10 #장치 사용량(%util), 응답 시간(대기) 보기 iostat -c 1 10 #CPU 상태 보기

사례 분석 으아악

위에서 볼 수 있듯이 초당 평균 디스크 전송 횟수는 약 400회입니다. 디스크는 초당 약 5MB를 읽고 약 1MB를 씁니다.

으아악

디스크의 평균 응답 시간은 <5ms이고 디스크 사용량은 >80임을 알 수 있습니다. 디스크가 정상적으로 응답했지만 이미 사용 중이었습니다.

위 내용은 iostat 명령을 사용하여 Linux 디스크 성능 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 jb51.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제