IOPS I/O benchmark ベンチマーク

IOPS I/Oベンチマーク fio Bonnie++

優 IOPS I/O benchmark ベンチマーク

IOPS I/O benchmark ベンチマーク

クラウドやサーバ会社を選択する場合に、カタログスペックと値段だけでなく、実際にベンチマークを取って性能比較すると良いです。秒間にどれだけ入出力できるか、IOPSなどを見てみましょう。お仕事はデータや数字で語れた方がかっちょいい。

 

 

IOPSってなにもの?

IOPS(Input Output Per Second)はディスクが1秒間に処理できる、入出力の回数です。これが多ければ性能の良いディスクと言えます。I/Oは入出力。

 

クラウド側の障害時にも役立つ

また、運用している中でクラウド基盤の影響で非常に重くなったりする場合があります。サーバ会社のサポートに非常に遅いと相談した場合、『具体的なデータはありますか?』と言われることがあります。そんな時は通常状態のベンチマークのデータと、重くなっている現在のデータを提出するとスムーズに対応して貰えるかもしれません。

 

 

fio編

理研のrpmを使ってインストールします。

# cd /usr/local/src/ && wget http://ftp.riken.jp/Linux/fedora/epel/7/x86_64/f/fio-2.2.8-2.el7.x86_64.rpm
# yum install fio-2.2.8-2.el7.x86_64.rpm

 

A社 HDDのマシン 4CPU 4GB

# fio -filename=/tmp/test2g -direct=1 -rw=read -bs=16k -size=2G -numjobs=64 -runtime=60 -group_reporting -name=file1


file1: (g=0): rw=read, bs=16K-16K/16K-16K/16K-16K, ioengine=sync, iodepth=1
...
fio-2.2.8
Starting 64 processes
Jobs: 64 (f=64): [R(64)] [100.0% done] [155.7MB/0KB/0KB /s] [9960/0/0 iops] [eta 00m:00s]
file1: (groupid=0, jobs=64): err= 0: pid=15406: Thu Jul 27 11:45:42 2017
  read : io=9305.0MB, bw=158766KB/s, iops=9922, runt= 60015msec
    clat (usec): min=138, max=102028, avg=6445.47, stdev=19972.74
     lat (usec): min=139, max=102028, avg=6445.98, stdev=19972.73
    clat percentiles (usec):
     |  1.00th=[  510],  5.00th=[  692], 10.00th=[  788], 20.00th=[  892],
     | 30.00th=[  956], 40.00th=[ 1020], 50.00th=[ 1096], 60.00th=[ 1160],
     | 70.00th=[ 1224], 80.00th=[ 1368], 90.00th=[ 2832], 95.00th=[80384],
     | 99.00th=[85504], 99.50th=[87552], 99.90th=[91648], 99.95th=[94720],
     | 99.99th=[98816]
    bw (KB  /s): min= 1600, max= 3360, per=1.57%, avg=2487.20, stdev=188.20
    lat (usec) : 250=0.01%, 500=0.86%, 750=6.81%, 1000=29.57%
    lat (msec) : 2=50.78%, 4=3.80%, 10=1.68%, 20=0.06%, 100=6.45%
    lat (msec) : 250=0.01%
  cpu          : usr=0.08%, sys=0.31%, ctx=595645, majf=0, minf=2638
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued    : total=r=595520/w=0/d=0, short=r=0/w=0/d=0, drop=r=0/w=0/d=0
     latency   : target=0, window=0, percentile=100.00%, depth=1

Run status group 0 (all jobs):
   READ: io=9305.0MB, aggrb=158765KB/s, minb=158765KB/s, maxb=158765KB/s, mint=60015msec, maxt=60015msec

Disk stats (read/write):
  vda: ios=600000/0, merge=0/0, ticks=3756580/0, in_queue=3979068, util=100.00%

 

IOPS 秒間のI/O性能

  read : io=9305.0MB, bw=158766KB/s, iops=9922, runt= 60015msec

16KBの入出力を秒間9,922回できる。

 

 

スループット 帯域幅:時間あたりの仕事量。単位時間に運んだ総量

READ: io=9305.0MB, aggrb=158765KB/s, minb=158765KB/s, maxb=158765KB/s, mint=60015msec, maxt=60015msec

aggrb=総合帯域=158,765KB/s

 

clat(completeion latency):データを要求してから、実際にデータが送られてくるまでの時間。遅延時間。これは短い方が性能が良い。

clat (usec): min=138, max=102028, avg=6445.47, stdev=19972.74

avg=平均=6445.47=6.44547ms

 

 

B社 SSDのマシン 4CPU4GB

# fio -filename=/tmp/test2g -direct=1 -rw=read -bs=16k -size=2G -numjobs=64 -runtime=60 -group_reporting -name=file1

file1: (g=0): rw=read, bs=16K-16K/16K-16K/16K-16K, ioengine=sync, iodepth=1
...
fio-2.2.8
Starting 64 processes
Jobs: 64 (f=64): [R(64)] [100.0% done] [293.7MB/0KB/0KB /s] [18.8K/0/0 iops] [eta 00m:00s]
file1: (groupid=0, jobs=64): err= 0: pid=7241: Thu Jul 27 11:45:46 2017
  read : io=18311MB, bw=312485KB/s, iops=19530, runt= 60006msec
    clat (usec): min=93, max=172107, avg=3274.49, stdev=7514.37
     lat (usec): min=93, max=172107, avg=3274.83, stdev=7514.36
    clat percentiles (usec):
     |  1.00th=[  151],  5.00th=[  165], 10.00th=[  171], 20.00th=[  181],
     | 30.00th=[  187], 40.00th=[  195], 50.00th=[  203], 60.00th=[  213],
     | 70.00th=[  225], 80.00th=[  251], 90.00th=[18560], 95.00th=[21120],
     | 99.00th=[25472], 99.50th=[27520], 99.90th=[33536], 99.95th=[44800],
     | 99.99th=[116224]
    bw (KB  /s): min= 1856, max=12000, per=1.56%, avg=4887.30, stdev=1030.08
    lat (usec) : 100=0.01%, 250=79.65%, 500=4.38%, 750=0.37%, 1000=0.04%
    lat (msec) : 2=0.03%, 4=0.02%, 10=0.18%, 20=8.35%, 50=6.93%
    lat (msec) : 100=0.03%, 250=0.02%
  cpu          : usr=0.11%, sys=0.40%, ctx=1172260, majf=0, minf=2636
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued    : total=r=1171935/w=0/d=0, short=r=0/w=0/d=0, drop=r=0/w=0/d=0
     latency   : target=0, window=0, percentile=100.00%, depth=1

Run status group 0 (all jobs):
   READ: io=18311MB, aggrb=312484KB/s, minb=312484KB/s, maxb=312484KB/s, mint=60006msec, maxt=60006msec

Disk stats (read/write):
  vda: ios=1170858/408, merge=0/207, ticks=3814379/9757, in_queue=3824832, util=99.87%

 

IOPS 秒間のI/O性能

read : io=18311MB, bw=312485KB/s, iops=19530, runt= 60006msec

16KBの入出力を秒間19,530回できる。

 

 

スループット 帯域幅:時間あたりの仕事量。単位時間に運んだ総量

   READ: io=18311MB, aggrb=312484KB/s, minb=312484KB/s, maxb=312484KB/s, mint=60006msec, maxt=60006msec

aggrb=総合帯域=312,484KB/s

 

clat(completeion latency):データを要求してから、実際にデータが送られてくるまでの時間。遅延時間。これは短い方が性能が良い。

clat (usec): min=93, max=172107, avg=3274.49, stdev=7514.37

avg=平均=3274.49=3.27449ms

 

 

計測値 まとめ

IOPS  aggrb スループット  clat avg(平均レイテンシ)
A社HDD  9,922  158,765KB/s  6.44547ms
B社SSD  19,530  312,484KB/s  3.27449ms

 

SSDは優秀。

 

 

Bonnie++(ボニプラ)編

 

fio以外にもツールはあって、ベンチマークはいくつかツールを組み合わせてベンチマークを行うと良い按配。理研さんにまたお世話になります。

# cd /usr/local/src/ && wget http://ftp.riken.jp/Linux/dag/redhat/el7/en/x86_64/rpmforge/RPMS/bonnie++-1.96-1.el7.rf.x86_64.rpm
# yum install bonnie++-1.96-1.el7.rf.x86_64.rpm

 

S社 HDDのマシン 4CPU 4GB

# bonnie++ -u 一般ユーザ名 -d /tmp/ -n 256:4096:512:16 -s 2048 -r 1024

Version  1.96       ------Sequential Output------ --Sequential Input- --Random-
Concurrency   1     -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
www.xxxxx.co.jp  2G  1486  99 192918  38 196113  29  3362  99 1207695  99 11792  88
Latency              8041us   23813us   11306us    3896us     174us   10846us
Version  1.96       ------Sequential Create------ --------Random Create--------
www.xxxxx.co.jp     -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files:max:min        /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
    256:4096:512/16  2264  10 69831  97 27726  97  2257  10 18016  27  1470  11
Latency             97190us    6945us    6597us   93536us     896ms     764ms
1.96,1.96,www.xxxxx.co.jp,1,1501103519,2G,,1486,99,192918,38,196113,29,3362,99,1207695,99,11792,88,256,4096,512,,16,2264,10,69831,97,27726,97,2257,10,18016,27,1470,11,8041us,23813us,11306us,3896us,174us,10846us,97190us,6945us,6597us,93536us,896ms,764ms

/secは1秒あたりの処理回数

%CPは実行中のCPU使用率

 

C社 SSDのマシン 4CPU 4GB

# bonnie++ -u 一般ユーザ名 -d /tmp/

Version  1.96       ------Sequential Output------ --Sequential Input- --Random-
Concurrency   1     -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
www.sys-guard.co 8G   824  99 372738  35 336094  32  3962  99 626234  26  5298  90
Latency             10697us     171ms   60972us    4985us     101ms   17221us
Version  1.96       ------Sequential Create------ --------Random Create--------
www.sys-guard.com   -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16 +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++
Latency              2639us     575us     648us     174us     183us     844us
1.96,1.96,www.sys-guard.com,1,1501216791,8G,,824,99,372738,35,336094,32,3962,99,626234,26,5298,90,16,,,,,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++,10697us,171ms,60972us,4985us,101ms,17221us,2639us,575us,648us,174us,183us,844us

/secは1秒あたりの処理回数

%CPは実行中のCPU使用率

 

HTML出力もできる!

bonnie++ IOPS

bon_csv2htmlコマンドにパイプで繋げるとHTML出力も可能です。見やすいね。

# bonnie++ -u 一般ユーザ名 -d /tmp/ -n 256:4096:512:16 -s 2048 -r 1024 | bon_csv2html > bonnie_result.html

 

https://sys-guard.com/demo/bonnie_result.html

 

色々なツールがあるので、コストと実際の性能を実測して、要件にあったクラウドサーバを選択しましょう(ㆁᴗㆁ✿)

 

お疲れ様です。

 

IOPS I/O benchmark ベンチマーク
最新情報をチェックしよう!
>システム構築・保守に特化した会社です。

システム構築・保守に特化した会社です。

システムの構築・保守運用「システムガーディアン」 社内システム担当が欲しいが、専属で雇うほどの仕事量はない。 必要な時に必要なだけ頼りたいというお悩みを持つ企業様へ専門知識を持って対応を行っております。 サーバから各種システムまで自社・他社で構築されたシステムに対してサポートを行っております。

CTR IMG