はじめに
Linuxの iostatコマンド に使い方について書いてみました。
iostatコマンドの説明
iostatコマンドをオプションをつけずに打つと、CPU使用率と、I/Oデバイスの使用状況を表示してくれます。
上部の avg-cpu: がCUPの使用率で、下部の Device: が、デバイスの使用状況を表しています。
CPUの使用率のみ表示したい場合は、オプションに c をつけます。
iostat -c
デバイスの使用率のみ表示したい場合は、オプションに d をつけます。
iostat -d
デバイスの使用量の単位がデフォルトで kB の表示になっています。見やすくするため、 MB に変更したい場合は、オプションに m をつけます。残念ですが、 GB で表示するオプションはないようです。
iostat -dm
デバイスの項目の見方について見ていこう
項目 | 説 明 |
---|---|
tps | 1秒当たりのHDDへのI/Oリクエスト数の平均 |
MB_read/s | 1秒当たりのHDDへの読み出し容量の平均 |
MB_wrtn/ | 1秒当たりのHDDへの書き込み容量の平均 |
MB_read | HDDへの読み出し容量の総計 |
MB_wrtn | HDDへの書き込み容量の総計 |
MB_read の容量が大きければ、DBにSelect文が大量に発行されていて、MD_write の容量が大きければ、DBにInsert、Update、Delete文が大量に発行されているのだなと判断できる。
表示された数字の見方には注意が必要になる。MB_read/sだが、この値は、現在リアルタイムでDBへのアクセスが発生している数値ではなく、OSが起動してから、現在までの平均値を表示しています。
現在のリアルタイムのMS_read/sを見たい場合はこういうコマンドをうつ。リアルタイムな値を1秒間隔で表示してくれます。
iostat -dm 1
ちなみにだが、このようにオプションの順番を逆にしても同じ結果を表示してくれます。
iostat 1 -dm
2秒間隔で表示したい場合は、オプションに 2 をしてすればOK。これで、2秒間の平均値が表示される事になります。
iostat 2 -dm
ちなみにだが、先頭に表示される1行目だけは、何故だが、平均値が表示されるようになっているので覚えておいて下さい。
t オプションを付けると、計測した時間を表示してくれるので、確かに、2秒間隔で表示してくれているねという事が確認できます。
iostat 2 -dmt
さて、 Device が3つ表示されています。デバイスの説明です。
Device | 説 明 |
---|---|
sda | 1台目の物理ハードディスク(プライマリ) |
sdb | 2台目の物理ハードディスク(セカンダリ) |
loop0 | ループデバイス |