【アイオースタット】

iostat(I/O統計) とは?

最終更新:
💡 ディスクの忙しさを数字で見える化する聴診器

CPUやディスクなどの入出力の統計を表示するコマンド。Linuxのsysstat版では、デバイスごとの転送量、I/Oの平均所要時間、稼働状況などを見て、性能調査の手がかりにできる。

📌 このページのポイント
同じ装置の平常時と見比べる 読み取り要求の平均所要時間 比較期間 合計時間 r_await 平常時の例 200 ms 2.0 ms 調査時の例 2000 ms 20.0 ms 合計時間 ÷ 100要求 = 平均 待ち時間 + 処理時間を含む %utilだけで性能限界を決めない 要求量・負荷・アプリの応答も照合
Linuxのsysstat版の読み取り統計を簡略化した架空例。各期間に完了した100要求の所要時間合計から平均を計算しています。実測値や正常・異常のしきい値ではありません。
ひよこ ひよこ
ディスクI/Oが遅いかも。何を見ればいいの?
ペンギン先生 ペンギン先生
Linuxのsysstat版iostatなら、iostat -x -y 1で、1秒間隔の拡張統計を観測できるよ。-yは起動からの統計を示す最初のレポートを省く指定。CPUやデバイスの統計を、アプリの応答時間とも見比べるんだ。
ひよこ ひよこ
-xの出力で注目する値は?
ペンギン先生 ペンギン先生
r_awaitやw_awaitは、読み取り・書き込み要求の平均所要時間で、単位はミリ秒。キューで待つ時間と処理する時間の両方を含むよ。r/sやw/sは毎秒の要求数で、転送量も合わせて確認すると状況をつかみやすいんだ。
ひよこ ひよこ
%utilが100%に近ければ、限界なの?
ペンギン先生 ペンギン先生
要求を一つずつ処理する装置なら飽和の手がかりになるよ。でも並列に処理できるSSDやRAIDでは、%utilだけで性能限界を判断できない。平均所要時間が平常時より増えているか、負荷や要求の大きさも変わっていないかを調べよう。
ひよこ ひよこ
何ミリ秒なら正常、と決められる?
ペンギン先生 ペンギン先生
一律には決められないよ。同じ装置・似た負荷の平常時と比較するのが基本なんだ。データベースが遅いなら、クエリやCPUなどの指標とも照合する。iostatの数値だけで、ディスクが原因と確定するわけではないよ。
もっと詳しく知りたい人へ

rMB/sやwMB/sを表示するには?

sysstat版では-mで転送量の単位をMiB/sにします。表示名にはMBが使われますが、実際は1 MiB=1,048,576バイトです。たとえばiostat -x -m -y 1で間隔ごとの拡張統計を確認できます。出力項目はバージョンや指定したオプションによって変わります。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「iostat」って出てきたら「ディスクI/Oの状況を詳しく調べるコマンド」と思えればだいたいOK!
📖 おまけ:英語の意味
「input/output statistics」 = 入出力統計
💬 ディスクへの入出力(I/O)の統計情報を表示するコマンドだよ

参考資料

← 用語集にもどる