iostat
iostatは、ディスクの入出力性能を監視するためのツールです。
コマンドライン形式:
iostat [ options ] [ <interval> [ <count> ] ]
パラメータ説明:
options の取り得る値は以下のとおりです:
- -C:CPU 使用状況を表示します。
- -d:ディスク使用状況を表示します。
- -k:KB単位で表示します。
- -m:MB単位で表示します。
- -N:ディスクアレイ(LVM)情報を表示します。
- -n:NFS使用状況を表示します。
- -p[ディスク名]:ディスクとパーティションの状況を表示します。
- -t:端末とCPUの情報を表示します。
- -x:詳細情報を表示します。
interval:出力更新の間隔時間です。
count:出力回数です。
iostat -x 1 3 コマンドでディスクの入出力の詳細情報を確認します。例:
$iostat -x 1 3
avg-cpu: %user %nice %system %iowait %steal %idle
0.03 0.00 0.00 0.00 0.00 99.97
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
sda 0.00 0.00 1.00 0.00 16.00 0.00 16.00 0.00 0.00 0.00 0.00
sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sdc 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sdd 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sde 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sdf 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sdg 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sdh 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sdi 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sdj 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sdk 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sdl 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
md127 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
md126 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
フィールド説明:
avg-cpu:
- %user:ユーザー空間でのCPU使用時間の割合。
- %nice:Nice値を持つユーザー空間でのCPU使用時間の割合。
- %system:カーネル空間でのCPU使用時間の割合。
- %iowait:I/O待ち時間に費やされるCPU時間の割合。
- %steal:ハイパーバイザーが別の仮想プロセッサを処理している間に、仮想CPUが無意識のうちに待機している時間の割合。
- %idle:CPUのアイドル時間の割合。
Device:ディスク名。
rrqm/s: 1秒間にメジャーコンパクションされる読み取り操作数。
wrqm/s: 1秒間にメジャーコンパクションされる書き込み操作数。
r/s: 1秒間のI/O読み取り回数。
w/s: 1秒間のI/O書き込み回数。
rsec/s: 1秒間のセクター読み取り数。
wsec/s: 1秒間のセクター書き込み数。
rkB/s: 1秒間のKバイト読み取り数。
wkB/s: 1秒間のKバイト書き込み数。
avgrq-sz: 平均I/Oサイズ。
avgqu-sz: 平均I/Oキュー長。
await: 平均I/O操作の待ち時間(ミリ秒)。
svctm: 平均I/O操作のサービス時間(ミリ秒)。
%util: I/Oが占用するCPU利用率。
説明
%utilはディスクのI/O使用状況を示します。この値が高い場合、I/Oがボトルネックになる可能性があります。また、await = 平均I/O操作のサービス時間 + I/O待ち時間です。そのため、awaitがsvctmよりも大幅に大きい場合、I/O待ち時間が長く、I/Oキューが大きいことを意味します。