mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

Linux - Disk の IOPS の確認!

[ サーバ構築 ] [ Linux ]

こんばんは。

今回は、Linux OS でハードディスクが単位時間当たりどれくらい入出力要求をこなしているのか?を確認する方法についての備忘録です。

0. 前提条件

  • CPU と入出力装置の負荷を確認するための iostat コマンドを使用する。
  • Linux Mint や Debian 等はデフォルトではインストールされていないかもしれない。
    その場合は、 apt-get install sysstat 等でインストールする。

1. IOPS について

まず “IOPS” とは、記憶装置がある条件下で1秒間で読み込み・書き込みができる回数のことで、 “Input/Output Per Second” の略である。

2. コマンドの実行

以下のようにコマンドを実行する。

1
2
3
4
5
# 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 オプションを使用しない場合は以下のように出力される。

1
2
3
4
5
# 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 の利用統計が確認できる。

1
2
3
4
5
# 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/sw/s の値を加算したものが IOPS の値となる。

前項の場合、 72.4515.82 を加算した 88.27 が IOPS 値となる。

4. 注意

  • 実際には、マシン稼働中は時々刻々と値は変化しているので、何回も実行して平均を取るのがよいだろう。

当方の場合、 HDD の IOPS を確認することは、データベースの入出力に関する設定値を決定するのに必要でした。

以上。

Comments