ベンチマークを”とる”の漢字ってどれが正しいのか
毎回迷う。

3D NANDでNVME SSDを2つ手にしたので
fioを使ってベンチマークを取ってみたいと思います。

 

構成


  • ADATA ASX8000NP-128GM-C ×2(M.2 -> PCIe変換カード)
  • RAIDZ-1(ZFS)
  • Proxmox(Debian)
  • Xeon E5-2650
  • Memory 32GB

今回はブートディスクではなく、ZFSを使ってRAID1環境です。
RAID0ではないのでご注意ください。

 

ベンチマーク

今回はWindowsではなくLinux環境なので
fioを使ってベンチマークを行いました。

オプションとしてbs=4k, jobs=64となっています。

※書き込み速度に関してはチューニングをしていないので
信用しないでください。

 

シーケンシャル リード

fio-2.16
Starting 64 processes
Jobs: 64 (f=64): [R(64)] [100.0% done] [3008MB/0KB/0KB /s] [770K/0/0 iops] [eta 00m:00s]
file1: (groupid=0, jobs=64): err= 0: pid=7039: Sun Apr 30 18:38:54 2017
read : io=27445MB, bw=2739.4MB/s, iops=701270, runt= 10019msec
clat (usec): min=2, max=309940, avg=89.59, stdev=3133.66
lat (usec): min=2, max=309940, avg=89.70, stdev=3133.69
clat percentiles (usec):
|  1.00th=[    7],  5.00th=[    8], 10.00th=[    9], 20.00th=[   10],
| 30.00th=[   12], 40.00th=[   15], 50.00th=[   20], 60.00th=[   23],
| 70.00th=[   24], 80.00th=[   25], 90.00th=[   26], 95.00th=[   27],
| 99.00th=[  135], 99.50th=[  151], 99.90th=[  398], 99.95th=[22144],
| 99.99th=[168960]
lat (usec) : 4=0.12%, 10=15.86%, 20=33.99%, 50=47.28%, 100=0.09%
lat (usec) : 250=2.37%, 500=0.22%, 750=0.01%, 1000=0.01%
lat (msec) : 2=0.01%, 4=0.01%, 10=0.01%, 20=0.01%, 50=0.01%
lat (msec) : 100=0.01%, 250=0.04%, 500=0.01%
cpu          : usr=1.49%, sys=22.93%, ctx=9805, majf=3, minf=564
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=7026028/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=27445MB, aggrb=2739.4MB/s, minb=2739.4MB/s, maxb=2739.4MB/s, mint=10019msec, maxt=10019msec

IOPS : 701270
bw : 2739.4MB/s

 

シーケンシャル ライト

fio-2.16
Starting 64 processes
Jobs: 64 (f=64): [W(64)] [100.0% done] [0KB/1034MB/0KB /s] [0/265K/0 iops] [eta 00m:00s]
file1: (groupid=0, jobs=64): err= 0: pid=7635: Sun Apr 30 18:43:53 2017
write: io=10085MB, bw=1008.2MB/s, iops=258093, runt= 10003msec
clat (usec): min=9, max=131746, avg=245.99, stdev=2416.77
lat (usec): min=9, max=131746, avg=246.22, stdev=2416.85
clat percentiles (usec):
|  1.00th=[   19],  5.00th=[   25], 10.00th=[   29], 20.00th=[   36],
| 30.00th=[   41], 40.00th=[   46], 50.00th=[   51], 60.00th=[   56],
| 70.00th=[   62], 80.00th=[   70], 90.00th=[   80], 95.00th=[   89],
| 99.00th=[ 1480], 99.50th=[15808], 99.90th=[39168], 99.95th=[47360],
| 99.99th=[66048]
lat (usec) : 10=0.01%, 20=1.04%, 50=45.78%, 100=50.87%, 250=1.20%
lat (usec) : 500=0.04%, 750=0.02%, 1000=0.02%
lat (msec) : 2=0.05%, 4=0.08%, 10=0.22%, 20=0.26%, 50=0.36%
lat (msec) : 100=0.04%, 250=0.01%
cpu          : usr=0.86%, sys=20.98%, ctx=116617, majf=0, minf=565
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=0/w=2581714/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):
WRITE: io=10085MB, aggrb=1008.2MB/s, minb=1008.2MB/s, maxb=1008.2MB/s, mint=10003msec, maxt=10003msec

IOPS : 258093
bw : 1008.2MB/s

 

ランダム リード

fio-2.16
Starting 64 processes
Jobs: 64 (f=64): [r(64)] [100.0% done] [2902MB/0KB/0KB /s] [743K/0/0 iops] [eta 00m:00s]
file1: (groupid=0, jobs=64): err= 0: pid=8067: Sun Apr 30 18:47:10 2017
read : io=28583MB, bw=2857.8MB/s, iops=731567, runt= 10002msec
clat (usec): min=3, max=211255, avg=85.23, stdev=2162.00
lat (usec): min=3, max=211255, avg=85.38, stdev=2162.13
clat percentiles (usec):
|  1.00th=[    6],  5.00th=[    7], 10.00th=[    8], 20.00th=[    8],
| 30.00th=[    9], 40.00th=[   10], 50.00th=[   11], 60.00th=[   12],
| 70.00th=[   14], 80.00th=[   17], 90.00th=[   21], 95.00th=[   80],
| 99.00th=[  227], 99.50th=[  306], 99.90th=[18304], 99.95th=[56064],
| 99.99th=[103936]
lat (usec) : 4=0.01%, 10=35.73%, 20=51.34%, 50=7.69%, 100=0.64%
lat (usec) : 250=3.68%, 500=0.76%, 750=0.02%, 1000=0.01%
lat (msec) : 2=0.01%, 4=0.01%, 10=0.01%, 20=0.03%, 50=0.04%
lat (msec) : 100=0.05%, 250=0.01%
cpu          : usr=1.88%, sys=22.28%, ctx=15897, majf=0, minf=574
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=7317138/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=28583MB, aggrb=2857.8MB/s, minb=2857.8MB/s, maxb=2857.8MB/s, mint=10002msec, maxt=10002msec

IOPS : 731567
bw : 2857.8MB/s

 

ランダム ライト

fio-2.16
Starting 64 processes
Jobs: 64 (f=64): [w(64)] [100.0% done] [0KB/7232KB/0KB /s] [0/1808/0 iops] [eta 00m:00s]
file1: (groupid=0, jobs=64): err= 0: pid=8468: Sun Apr 30 18:49:29 2017
write: io=596968KB, bw=59489KB/s, iops=14872, runt= 10035msec
clat (usec): min=15, max=90965, avg=4288.69, stdev=6523.17
lat (usec): min=15, max=90966, avg=4289.07, stdev=6523.29
clat percentiles (usec):
|  1.00th=[   29],  5.00th=[   44], 10.00th=[   58], 20.00th=[  692],
| 30.00th=[ 1944], 40.00th=[ 2512], 50.00th=[ 3024], 60.00th=[ 3344],
| 70.00th=[ 3568], 80.00th=[ 4128], 90.00th=[ 7712], 95.00th=[18048],
| 99.00th=[35072], 99.50th=[36096], 99.90th=[36608], 99.95th=[43776],
| 99.99th=[60160]
lat (usec) : 20=0.05%, 50=6.92%, 100=11.33%, 250=1.48%, 500=0.12%
lat (usec) : 750=0.12%, 1000=0.16%
lat (msec) : 2=10.20%, 4=49.31%, 10=13.95%, 20=1.67%, 50=4.67%
lat (msec) : 100=0.02%
cpu          : usr=0.13%, sys=0.91%, ctx=121802, majf=0, minf=490
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=0/w=149242/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):
WRITE: io=596968KB, aggrb=59488KB/s, minb=59488KB/s, maxb=59488KB/s, mint=10035msec, maxt=10035msec
root@proxmox:/prdpool# fio -filename=/prdpool/test2g -rw=randwrite -bs=4k -size=2G -numjobs=64 -runtime=10 -group_reporting -name=file1

IOPS : 14872
bw : 59489KB/s

 

まとめ

種類 IOPS スループット(MB/s) レイテンシ(usec)
Seq Read 701270 2739.4 50usec
Seq Write 258093 1008.2 100usec
Rand Read 731567 2857.8 20usec
Rand Write 14872 59.49 50msec

※書き込み速度に関してはチューニングをしていないので
信用しないでください。

書き込み速度に関してはZFSのsyncがenableな状態でとったので
激遅になっています。

購入当時、このSSDは9,000円を切る価格で3D NAND + NVME 1.2が搭載されており
コストパフォーマンスが優れているSSDだと思います。
それでも10,000円を切っているのでオススメです。

熱はそこそこ高く、冷却もきちんとしないと
サマールスロットリングが発生してしまうので注意が必要です。