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

この記事が気に入ったらサポートをしてみませんか?