momoの手帳

個人でevernoteに記録してたけどデータ欠損してたので数少ないデータをブログへお引越しすることにした。和暦も変わることだし新たに得た知識とか趣味のこととか書いていきます。現在、お引越し中

SSDのスペック調査 -fioを用いた測定-

年末ごろにSSDのスペック調査をした時のことのメモ
 
・fioとは
ディスクの負荷をシミュレーションしてreadやwriteの速度など負荷を与えながらスペックを計測するもの
SSDの導入検査をするときに使用した
 
・環境
CentOS 6.10
 
・インストール準備
yum install epel-release
yum install fio
 
・使い方
並列で実行するようであれば設定をファイルに記述して実行する
単一であればfioの後ろにオプションをつけて実行するだけで良い
例1) fio --name=random-writers --ioengine=libaio --iodepth=4 --rw=randwrite --bs=32k --direct=0 --size=64m --numjobs=4
 
例2)
測定設定テンプレ
-read-
[root@000 ~]# cat bench_read.job
[global]
ioengine=libaio
direct=1
invalidate=1
group_reporting
directory=/home
filename=test.bin
runtime=60

[Rand Read 4k]
readwrite=randread
size=4G
bs=4k
iodepth=32
numjobs=1

-write-
[root@000 ~]# cat bench_write.job
[global]
ioengine=libaio
direct=1
invalidate=1
group_reporting
directory=/home
filename=test.bin
runtime=60

[randwrite-4KB]
readwrite=randwrite
size=4G
bs=4k
iodepth=32
numjobs=1

・出力結果
読み込み
[root@000 ~]# fio bench_read.job
Rand Read 4k: (g=0): rw=randread, bs=4K-4K/4K-4K/4K-4K, ioengine=libaio, iodepth=32
fio-2.0.13
Starting 1 process
Rand Read 4k: Laying out IO file(s) (1 file(s) / 4096MB)
Jobs: 1 (f=1): [r] [100.0% done] [606.8M/0K/0K /s] [155K/0 /0  iops] [eta 00m:00s]
Rand Read 4k: (groupid=0, jobs=1): err= 0: pid=15338: Thu Nov 29 11:50:55 2018
  read : io=4096.0MB, bw=622577KB/s, iops=155644 , runt=  6737msec
    slat (usec): min=2 , max=272 , avg= 5.41, stdev= 1.78
    clat (usec): min=36 , max=2118 , avg=199.77, stdev=35.58
     lat (usec): min=40 , max=2120 , avg=205.22, stdev=36.26
    clat percentiles (usec):
     |  1.00th=[  177],  5.00th=[  183], 10.00th=[  185], 20.00th=[  187],
     | 30.00th=[  189], 40.00th=[  191], 50.00th=[  193], 60.00th=[  195],
     | 70.00th=[  197], 80.00th=[  199], 90.00th=[  205], 95.00th=[  241],
     | 99.00th=[  346], 99.50th=[  350], 99.90th=[  362], 99.95th=[  426],
     | 99.99th=[ 1288]
    bw (KB/s)  : min=422232, max=649512, per=99.83%, avg=621545.85, stdev=66515.11
    lat (usec) : 50=0.01%, 100=0.01%, 250=95.46%, 500=4.51%, 750=0.02%
    lat (msec) : 2=0.01%, 4=0.01%
  cpu          : usr=13.42%, sys=85.58%, ctx=24271, majf=0, minf=54
  IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=100.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.1%, 64=0.0%, >=64=0.0%
     issued    : total=r=1048576/w=0/d=0, short=r=0/w=0/d=0

Run status group 0 (all jobs):
   READ: io=4096.0MB, aggrb=622577KB/s, minb=622577KB/s, maxb=622577KB/s, mint=6737msec, maxt=6737msec

Disk stats (read/write):
    md2: ios=1022594/17, merge=0/0, ticks=0/0, in_queue=0, util=0.00%, aggrios=524288/11, aggrmerge=0/11, aggrticks=16196/7, aggrin_queue=16137, aggrutil=97.91%
  sda: ios=493250/11, merge=0/11, ticks=14686/7, in_queue=14642, util=97.09%
  sdb: ios=555326/11, merge=0/11, ticks=17707/8, in_queue=17633, util=97.91%

・書き込み
[root@000 ~]# fio bench_write.job
randwrite-4KB: (g=0): rw=randwrite, bs=4K-4K/4K-4K/4K-4K, ioengine=libaio, iodepth=32
fio-2.0.13
Starting 1 process
Jobs: 1 (f=1): [w] [100.0% done] [0K/274.2M/0K /s] [0 /70.2K/0  iops] [eta 00m:00s]
randwrite-4KB: (groupid=0, jobs=1): err= 0: pid=15346: Thu Nov 29 11:53:34 2018
  write: io=4096.0MB, bw=262817KB/s, iops=65704 , runt= 15959msec
    slat (usec): min=2 , max=835 , avg=11.02, stdev= 9.74
    clat (usec): min=77 , max=65027 , avg=474.57, stdev=947.59
     lat (usec): min=96 , max=65032 , avg=485.79, stdev=947.52
    clat percentiles (usec):
     |  1.00th=[  326],  5.00th=[  374], 10.00th=[  394], 20.00th=[  414],
     | 30.00th=[  426], 40.00th=[  438], 50.00th=[  446], 60.00th=[  458],
     | 70.00th=[  470], 80.00th=[  482], 90.00th=[  498], 95.00th=[  516],
     | 99.00th=[  588], 99.50th=[  804], 99.90th=[ 3792], 99.95th=[19840],
     | 99.99th=[43264]
    bw (KB/s)  : min=222920, max=288520, per=99.88%, avg=262495.74, stdev=19832.98
    lat (usec) : 100=0.01%, 250=0.22%, 500=90.16%, 750=9.06%, 1000=0.15%
    lat (msec) : 2=0.23%, 4=0.09%, 10=0.02%, 20=0.03%, 50=0.03%
    lat (msec) : 100=0.01%
  cpu          : usr=8.05%, sys=85.70%, ctx=4495, majf=0, minf=23
  IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=100.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.1%, 64=0.0%, >=64=0.0%
     issued    : total=r=0/w=1048576/d=0, short=r=0/w=0/d=0

Run status group 0 (all jobs):
  WRITE: io=4096.0MB, aggrb=262817KB/s, minb=262817KB/s, maxb=262817KB/s, mint=15959msec, maxt=15959msec

Disk stats (read/write):
    md2: ios=0/1044661, merge=0/0, ticks=0/0, in_queue=0, util=0.00%, aggrios=0/1048553, aggrmerge=0/49, aggrticks=0/107397, aggrin_queue=107396, aggrutil=97.47%
  sda: ios=0/1048530, merge=0/73, ticks=0/106441, in_queue=106439, util=95.37%
  sdb: ios=0/1048577, merge=0/26, ticks=0/108354, in_queue=108353, util=97.47%