Linux에서 총 읽기 및 총 쓰기 IOPS를 얻는 방법은 무엇입니까?


32

명령 줄을 사용하거나 프로그래밍 방식으로 Linux에서 IOPS를 별도로 읽고 쓰는 방법은 무엇입니까? sysstat패키지를 설치했습니다 .

sysstat패키지 명령을 사용하여 개별적으로 계산하는 방법을 알려주십시오 .

또는 파일 시스템을 사용하여 계산할 수 있습니까?

예 : /proc 하거나 /sys또는/dev

답변:


46

iostatsysstat원하는 경우 전체 iops를 표시하거나 읽기 / 쓰기로 구분하여 표시 할 수 있는 패키지의 일부입니다 .

iostat장치 정보 페이지 만 표시하려면 -d 플래그와 함께 실행 하고 자세한 정보 (별도의 읽기 / 쓰기 통계)는 -x를 표시하십시오. 명령 행에서 나중에 간단히 추가하여 정보를 원하는 장치를 지정할 수 있습니다.

iostat -dx출력에 대한 느낌을 얻으려면 요약을 실행 하고 살펴 보십시오 . 또한 iostat -dx 1지속적으로 새로 고침되는 출력을 표시하는 데 사용할 수 있으며 , 이는 문제 해결 또는 실시간 모니터링에 유용합니다.

을 사용 awk하면 필드 4는 초당 읽기 를 제공 하고 필드 5는 초당 쓰기 를 제공합니다 .

읽기 / 초만 :

iostat -dx <your disk name> | grep <your disk name> | awk '{ print $4; }'

쓰기 / 초만 :

iostat -dx <your disk name> | grep <your disk name> | awk '{ print $5; }'

슬래시로 구분 된 읽기 / 초 및 쓰기 / 초 :

iostat -dx <your disk name> | grep <your disk name> | awk '{ print $4"/"$5; }'

전반적인 IOPS (대부분의 사람들이 이야기하는 내용) :

iostat -d <your disk name> | grep <your disk name> | awk '{ print $2; }'

예를 들어, 주 드라이브 인 / dev / sda와 함께 마지막 명령을 실행하면 다음과 같습니다.

dan@daneel ~ $ iostat -dx sda | grep sda | awk '{ print $4"/"$5; }' 15.59/2.70

이 권한을 실행하기 위해 루트 일 필요 는 없으므로 권한이없는 사용자에게 유용합니다.

TL; DR : 당신이 관심이 있다면 sda, 다음 명령은 다음에 대한 전반적인 IOPS를 제공합니다 sda:

iostat -d sda | grep sda | awk '{ print $2; }'

모든 장치 에서 IOPS를 추가 하려면 awk를 다시 사용할 수 있습니다.

iostat -d | tail -n +4 | head -n -1 | awk '{s+=$2} END {print s}'

이것은 다음과 같이 출력을 생성합니다.

dan@daneel ~ $ iostat -d | tail -n +4 | head -n -1 | awk '{s+=$2} END {print s}' 18.88


감사합니다 Mr.Dannel의 유용합니다. 전체 시스템 읽기 / 쓰기 IOPS를 얻으려면 어떻게해야합니까?
shas

내가 실행할 때 dm-0, dm-1, dm-2에 대해 iostat -dx 1이와 같은 ans를 Linux 2.6.35.14-106.fc14.i686 (shashi) 08/24/2015 _i686_ (2 CPU) Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util sda 2.46 13.80 2.27 2.03 136.26 123.91 60.53 0.11 25.77 4.43 1.91 dm-0 0.00 0.00 2.35 0.77 93.07 6.11 31.86 0.17 53.73 2.59 0.81 dm-1 0.00 0.00 1.02 2.83 8.14 22.66 8.00 0.83 214.34 0.60 0.23 dm-2 0.00 0.00 1.37 11.89 34.77 95.14 9.80 1.67 126.06 0.84 1.11재귀 적으로 추가해야합니까?
shas

전체 템플릿과에 대한 예제로 답변을 업데이트했습니다 sda. 하드 드라이브의 IOPS 만 보려면 전체 IOPS ( iostat -d sda | grep sda | awk '{ print $2; }')에 마지막 명령을 사용하십시오
Daneel

아니요 첫 번째 답변에서 언급 한대로 별도로 원합니다. 약간 혼동해서 dm-*물어 봤습니다. 파티션에 추가를해야합니다
shas

알았어 다음 명령을 사용하여 각 dm-x장치가 무엇인지 확인할 수 있습니다 lvdisplay|awk '/LV Name/{n=$3} /Block device/{d=$3; sub(".*:","dm-",d); print d,n;}'.-결과를 추가하는 방법과 함께 이에 대한 답변을 업데이트하겠습니다.
Daneel
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.