コマンドラインを使用するか、プログラムでLinuxで個別に読み取り/書き込みIOPSを取得する方法は?sysstat
パッケージをインストールしました。
sysstat
packageコマンドを使用して個別に計算する方法を教えてください。
または、ファイルシステムを使用して計算できますか?
前任者: /proc
または/sys
/dev
答え1
iostat
sysstat
パッケージの一部であり、IOPS全体を表示したり、必要に応じて読み取り/書き込みで区切って表示する機能があります。
iostat
デバイス情報ページのみを表示するには-dフラグを使用して実行し、詳細情報(別々の読み取り/書き込み統計)を表示するには-xフラグを使用して実行します。情報を希望するデバイスを指定するには、コマンドラインに後ろに追加するだけです。
出力を理解するには、実行してiostat -dx
要約を見てください。また、これを使用してiostat -dx 1
継続的に更新された出力を表示することもできます。これは、トラブルシューティングやリアルタイム監視に役立ちます。
を使用すると、awk
フィールド4は以下を提供します。読み取り/秒、フィールド 5 は以下を提供します。書き込み/秒。
読書/秒:
iostat -dx <your disk name> | grep <your disk name> | awk '{ print $4; }'
1秒あたりの書き込みのみ可能:
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
お願いします。いいえまた、実行するにはルートが必要なので、権限のないユーザーにも役立ちます。
要約: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