SysBenchを使ってZenBook3のベンチマークを取ってみた。
インストール
apt install sysbench
ファイルIO
準備する。
cd /tmp sysbench --num-threads=16 --test=fileio --file-total-size=3G --file-test-mode=rndrw prepare
sysbench 0.4.12: multi-threaded system evaluation benchmark 128 files, 24576Kb each, 3072Mb total Creating files for the test...
ランダム読み書き
helpにあったとおりにベンチマークを実行する。
sysbench --num-threads=16 --test=fileio --file-total-size=3G --file-test-mode=rndrw run
sysbench 0.4.12: multi-threaded system evaluation benchmark Running the test with following options: Number of threads: 16 Extra file open flags: 0 128 files, 24Mb each 3Gb total file size Block size 16Kb Number of random requests for random IO: 10000 Read/Write ratio for combined random IO test: 1.50 Periodic FSYNC enabled, calling fsync() each 100 requests. Calling fsync() at the end of test, Enabled. Using synchronous I/O mode Doing random r/w test Threads started! Done. Operations performed: 6013 Read, 4009 Write, 12805 Other = 22827 Total Read 93.953Mb Written 62.641Mb Total transferred 156.59Mb (16.71Mb/sec) 1069.46 Requests/sec executed Test execution summary: total time: 9.3711s total number of events: 10022 total time taken by event execution: 0.0953 per-request statistics: min: 0.00ms avg: 0.01ms max: 5.05ms approx. 95 percentile: 0.01ms Threads fairness: events (avg/stddev): 626.3750/185.14 execution time (avg/stddev): 0.0060/0.00
全然読み方がわからないけど、これ3GB指定してるけど3GBアクセスしてない?なんか読み書きのサイズ調整が必要なのか? とりあえずスレッド数を変更してたら数字が良かったのが8192。
sysbench --num-threads=8192 --test=fileio --file-total-size=3G --file-test-mode=rndrw run
sysbench 0.4.12: multi-threaded system evaluation benchmark Running the test with following options: Number of threads: 8192 Extra file open flags: 0 128 files, 24Mb each 3Gb total file size Block size 16Kb Number of random requests for random IO: 10000 Read/Write ratio for combined random IO test: 1.50 Periodic FSYNC enabled, calling fsync() each 100 requests. Calling fsync() at the end of test, Enabled. Using synchronous I/O mode Doing random r/w test Threads started! Done. Operations performed: 4091 Read, 6009 Write, 11916 Other = 22016 Total Read 63.922Mb Written 93.891Mb Total transferred 157.81Mb (448.62Mb/sec) 28711.73 Requests/sec executed Test execution summary: total time: 0.3518s total number of events: 10100 total time taken by event execution: 275.5066 per-request statistics: min: 0.00ms avg: 27.28ms max: 148.04ms approx. 95 percentile: 134.86ms Threads fairness: events (avg/stddev): 1.2329/4.82 execution time (avg/stddev): 0.0336/0.04
56MB/sくらい。 本当に8192スレッドで実行してるんだろうか。
シーケンシャル読み
sysbench --num-threads=16 --test=fileio --file-total-size=3G --file-test-mode=seqrd run
sysbench 0.4.12: multi-threaded system evaluation benchmark Running the test with following options: Number of threads: 16 Extra file open flags: 0 128 files, 24Mb each 3Gb total file size Block size 16Kb Periodic FSYNC enabled, calling fsync() each 100 requests. Calling fsync() at the end of test, Enabled. Using synchronous I/O mode Doing sequential read test Threads started! FATAL: Too large position discovered in request! Done. Operations performed: 196607 Read, 0 Write, 0 Other = 196607 Total Read 3Gb Written 0b Total transferred 3Gb (16.015Gb/sec) 1049527.74 Requests/sec executed Test execution summary: total time: 0.1873s total number of events: 196607 total time taken by event execution: 2.5037 per-request statistics: min: 0.00ms avg: 0.01ms max: 41.00ms approx. 95 percentile: 0.00ms Threads fairness: events (avg/stddev): 12287.9375/3411.79 execution time (avg/stddev): 0.1565/0.04
2GB/sくらい。 仕様上PCIe 3.0 x4接続でバスの片道理論性能が4GB/sだから、実効性能限界出てるかはわからないけどそれなりのオーダで計れてそうなのは分かった。
シーケンシャル書き
sysbench --num-threads=16 --test=fileio --file-total-size=3G --file-test-mode=seqwr run
sysbench 0.4.12: multi-threaded system evaluation benchmark Running the test with following options: Number of threads: 16 Extra file open flags: 0 128 files, 24Mb each 3Gb total file size Block size 16Kb Periodic FSYNC enabled, calling fsync() each 100 requests. Calling fsync() at the end of test, Enabled. Using synchronous I/O mode Doing sequential write (creation) test Threads started! Done. Operations performed: 0 Read, 196608 Write, 128 Other = 196736 Total Read 0b Written 3Gb Total transferred 3Gb (581.51Mb/sec) 37216.69 Requests/sec executed Test execution summary: total time: 5.2828s total number of events: 196608 total time taken by event execution: 25.3832 per-request statistics: min: 0.00ms avg: 0.13ms max: 48.05ms approx. 95 percentile: 0.03ms Threads fairness: events (avg/stddev): 12288.0000/1694.04 execution time (avg/stddev): 1.5864/0.01
73MB/sくらい。
片付け
sysbench --num-threads=16 --test=fileio --file-total-size=3G --file-test-mode=rndrw cleanup
結論
これ真面目に色々やらないと正しい値が取れないな。。。