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

これを実行するのにrootである必要はないことに注意してください。これは非特権ユーザーにとって便利です。

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


ダンネル氏に感謝します。システム全体の読み取り/書き込み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;}'。-これで回答を更新し、結果を追加する方法も更新します。
ダニエル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.