ベンチマークを”とる”の漢字ってどれが正しいのか
毎回迷う。
3D NANDでNVME SSDを2つ手にしたので
fioを使ってベンチマークを取ってみたいと思います。
TOC
構成
- 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円を切っているのでオススメです。
熱はそこそこ高く、冷却もきちんとしないと
サマールスロットリングが発生してしまうので注意が必要です。