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
結論
これ真面目に色々やらないと正しい値が取れないな。。。