Linux - Disk の IOPS の確認!
Updated:
今回は、Linux OS でハードディスクが単位時間当たりどれくらい入出力要求をこなしているのか?を確認する方法についての備忘録です。
0. 前提条件
- CPU と入出力装置の負荷を確認するための
iostat
コマンドを使用する。 - Linux Mint や Debian 等はデフォルトではインストールされていないかもしれない。
その場合は、apt-get install sysstat
等でインストールする。
1. IOPS について
まず “IOPS” とは、記憶装置がある条件下で1秒間で読み込み・書き込みができる回数のことで、 “Input/Output Per Second” の略である。
2. コマンドの実行
以下のようにコマンドを実行する。
# iostat -dx
Linux 2.6.32-504.16.2.el6.i686 (hoge.mk-mode.com) 2015年10月06日 _i686_ (1 CPU)
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
sda 51.59 64.81 72.45 15.82 17.47 44.00 0.70 0.31 3.47 0.89 7.82
-d
はデバイスの利用統計のみを表示するオプション。-x
は指定したデバイスの統計を追加表示するオプション。
(デバイス名を指定しなかった場合は、 “/proc/partitions” に登録されている全てのデバイスについて表示される)iostat -dx 3 10
のように実行すると、3秒間隔で10回表示する。- 出力項目について
rrqm/s
… 結合したデバイスの入力要求の数wrqm/s
… 結合したデバイスの出力要求の数r/s
… 1秒間にデバイスに出力された入力要求の数w/s
… 1秒間にデバイスに出力された出力要求の数rsec/s
… 1秒間にデバイスから読み込んだセクタ数wsec/s
… 1秒間にデバイスへ書き込んだセクタ数avgrq-sz
… デバイスに出された入出力要求の平均サイズavgqu-sz
… デバイスに出された入出力要求のキューの長さの平均await
… デバイスに出された入出力要求が受け取られるまでの平均時間svctm
… デバイスに出された入出力要求の平均処理時間%util
… デバイスの入出力要求を出す間に使用したCPUの平均時間
ちなみに、 -x
オプションを使用しない場合は以下のように出力される。
# iostat -d
Linux 2.6.32-504.16.2.el6.i686 (hoge.mk-mode.com) 2015年10月06日 _i686_ (1 CPU)
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 88.28 17.98 44.05 249632216 611679582
- 出力項目について
tps
… デバイスへの入出力要求の数Blk_read/s
… デバイスから読み込んだブロック数の平均Blk_wrtn/s
… デバイスへ書き込んだブロック数の平均Blk_read
… 読み込んだブロック数Blk_wrtn
… 書き込んだブロック数
更には、 -c
オプションで CPU の利用統計が確認できる。
# iostat -c
Linux 2.6.32-504.16.2.el6.i686 (hoge.mk-mode.com) 2015年10月06日 _i686_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
11.57 2.39 2.35 31.88 0.00 51.81
- 出力項目について
%user
… ユーザレベルでのCPU使用率(%)%nice
… ユーザレベルで、優先的にCPUを使用したときのCPU使用率(%)%system
… システムレベルでのCPU使用率(%)%iowait
… CPU総時間当たりのI/O待ち時間率(%)%steal
… ゲストOSがリソース要求を行ったにもかかわらずCPUリソースを割り当ててもらえなかった時間の割合(%)%idle
… CPUのアイドル率(%)
そして、iostat
をオプションを全く指定しないで実行するのは -cd
オプションを指定して実行するのと同じ。(おそらく)
3. IOPS の確認
前項のようにコマンドを実行した後に表示された値のうち、 r/s
と w/s
の値を加算したものが IOPS の値となる。
前項の場合、 72.45
と 15.82
を加算した 88.27
が IOPS 値となる。
4. 注意
- 実際には、マシン稼働中は時々刻々と値は変化しているので、何回も実行して平均を取るのがよいだろう。
当方の場合、 HDD の IOPS を確認することは、データベースの入出力に関する設定値を決定するのに必要でした。
以上。
Comments