filebench (v. 1.4.9.1, Ubuntu 20.04 3 LTS)
概要
filebench という benchmark の使い方を説明します.
Filebench 1.4.9.1 を Ubuntu 20.04 3 LSTにinstallします.
filebenchとは
Filebench - A Model Based File System Workload Generator
ファイルアクセス性能を測るベンチマークです.複雑な動作のモデルを作成可能で,実アプリケーションに近いモデルのベンチマークを作ったりできます.
site: https://github.com/filebench/filebench
install
最新のRelease版をインストールします.
最新は version. 1.4.9.1 です.
https://github.com/filebench/filebench/releases
apt -y install libtool
wget https://github.com/filebench/filebench/archive/refs/tags/1.4.9.1.tar.gz
tar xfz 1.4.9.1.tar.gz
cd filebench-1.4.9.1/
libtoolize
aclocal
autoheader
automake --add-missing
autoconf
./configure --prefix=/opt/filebench-1.4.9.1
make
sudo make install
実行
以下の様に実行できます.
(これは実行方法説明用です.run 10 つまり 10秒実行 は,時間が短すぎて性能測定には不適切です)
$ sudo su -
$ echo 0 > /proc/sys/kernel/randomize_va_space
$ exit
$ sudo /opt/filebench-1.4.9.1/bin/filebench
Filebench Version 1.4.9.1
185995: 0.000: Allocated 170MB of shared memory
filebench> load varmail
185995: 3.602: Varmail Version 3.0 personality successfully loaded
185995: 3.602: Usage: set $dir=<dir>
185995: 3.602: set $meanfilesize=<size> defaults to 16384
185995: 3.602: set $nfiles=<value> defaults to 1000
185995: 3.602: set $nthreads=<value> defaults to 16
185995: 3.602: set $meanappendsize=<value> defaults to 16384
185995: 3.602: set $iosize=<size> defaults to 1048576
185995: 3.602: set $meandirwidth=<size> defaults to 1000000
185995: 3.602: run runtime (e.g. run 60)
filebench> run 10
185995: 5.711: Creating/pre-allocating files and filesets
185995: 5.713: Fileset bigfileset: 1000 files, 0 leafdirs, avg dir width = 1000000, avg dir depth = 0.5, 14.959MB
185995: 5.844: Removed any existing fileset bigfileset in 1 seconds
185995: 5.844: making tree for filset /tmp/bigfileset
185995: 5.844: Creating fileset bigfileset...
185995: 5.929: Preallocated 805 of 1000 of fileset bigfileset in 1 seconds
185995: 5.929: waiting for fileset pre-allocation to finish
186322: 5.929: Starting 1 filereader instances
186323: 5.931: Starting 16 filereaderthread threads
185995: 6.932: Running...
185995: 16.933: Run took 10 seconds...
185995: 16.933: Per-Operation Breakdown
closefile4 192ops 19ops/s 0.0mb/s 0.0ms/op 0us/op-cpu [0ms - 0ms]
readfile4 192ops 19ops/s 0.2mb/s 5.8ms/op 52us/op-cpu [0ms - 146ms]
openfile4 192ops 19ops/s 0.0mb/s 0.0ms/op 52us/op-cpu [0ms - 0ms]
closefile3 192ops 19ops/s 0.0mb/s 0.0ms/op 52us/op-cpu [0ms - 0ms]
fsyncfile3 192ops 19ops/s 0.0mb/s 401.4ms/op 8958us/op-cpu [125ms - 674ms]
appendfilerand3 198ops 20ops/s 0.1mb/s 0.1ms/op 101us/op-cpu [0ms - 3ms]
readfile3 198ops 20ops/s 0.2mb/s 4.2ms/op 253us/op-cpu [0ms - 120ms]
openfile3 198ops 20ops/s 0.0mb/s 0.0ms/op 404us/op-cpu [0ms - 0ms]
closefile2 198ops 20ops/s 0.0mb/s 0.0ms/op 202us/op-cpu [0ms - 2ms]
fsyncfile2 198ops 20ops/s 0.0mb/s 373.8ms/op 7121us/op-cpu [167ms - 504ms]
appendfilerand2 200ops 20ops/s 0.1mb/s 0.0ms/op 50us/op-cpu [0ms - 1ms]
createfile2 200ops 20ops/s 0.0mb/s 6.4ms/op 150us/op-cpu [0ms - 151ms]
deletefile1 207ops 21ops/s 0.0mb/s 12.1ms/op 870us/op-cpu [0ms - 152ms]
185995: 16.933: IO Summary: 2557 ops, 255.678 ops/s, (39/40 r/w), 0.8mb/s, 761us cpu/op, 199.1ms latency
185995: 16.933: Shutting down processes
これ↑のうち,ユーザによる入力は下記の太字部。
$ sudo "echo 0 > /proc/sys/kernel/randomize_va_space"
$ sudo /opt/filebench-1.4.9.1/bin/filebench
Filebench Version 1.4.9.1
185995: 0.000: Allocated 170MB of shared memory
filebench> load varmail
185995: 3.602: Varmail Version 3.0 personality successfully loaded
(略)
185995: 3.602: run runtime (e.g. run 60)
filebench> run 10
185995: 5.711: Creating/pre-allocating files and filesets
入力コマンドの説明
load varmail
は、varmail という名の用意されているworkload(ベンチマーク設定)の読み込みです。
ワークロードは、/opt/filebench-1.4.9.1/share/filebench/workloads/ の中にある *.f というファイルに定義されています。
varmail の場合は /opt/filebench-1.4.9.1/share/filebench/workloads/varmail.f
これはおそらく mail server の動作を模倣したベンチマークと思います。
性能の説明
一番最後の IO Summary の部分が一番代表的な結果
185995: 16.933: IO Summary: 2557 ops, 255.678 ops/s, (39/40 r/w), 0.8mb/s, 761us cpu/op, 199.1ms latency
255.678 ops/s ← 毎秒255個のI/O操作. この値は高いほど良い
0.8mb/s ← 毎秒0.8MBのアクセス.この値は高いほど良い
自動実行
上記の実行方法は対話的でした.
自動実行するには,設定ファイルを書けば良いです.
例:varmail を run 100 (100秒)行う
varmail の設定ファイルの最後に1行追加して終わりです.
cp /opt/filebench-1.4.9.1/share/filebench/workloads/varmail.f myvarmail.f
vi myvarmail.f
変更前
:
usage " set \$meandirwidth=<size> defaults to $meandirwidth"
usage " run runtime (e.g. run 60)"
↓
変更後
:
usage " set \$meandirwidth=<size> defaults to $meandirwidth"
usage " run runtime (e.g. run 60)"
run 100
変更前のファイルは,varmailのworkloadの設定だけしておわりでした.
変更後の亜フィルは,varmailのworkloadの設定をして,run 100をします.
sudo /opt/filebench-1.4.9.1/bin/filebench -f ./myvarmail.f