るいすときのこの物語

オタクエンジニアの雑記

激安3D NANDなNVME SSD「ADATA ASX8000NP-128GM-C」を2台でベンチマークとってみた


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

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円を切っているのでオススメです。

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