|
5 months ago | |
---|---|---|
COPYING | 5 months ago | |
Makefile | 5 months ago | |
README.md | 5 months ago | |
fio_fileserver.c | 5 months ago |
This is a loadable engine for fio to test something similar to the file server access pattern where a number of files is sharded over several levels of subdirectories.
fio
version in ./fio
subdirectorymake
fio 3.15 or later.
fio -name=test -ioengine=./libfio_fileserver.so -directory=/home/bench \
-chunk_size=256k -size=10G -direct=1 [-dir_levels=2] [-subdirs_per_dir=64] \
-bs=256k -rw=randwrite [-fsync_on_close=1] [-sync=1] [-numjobs=16 -group_reporting]
Notes:
direct=1
is optional, but without it you’ll be benchmarking the page cachebs=256k
must be less or equal to chunk_size
fsync=N
is supported, but it only fsyncs a random fileBecause of the synchronous syscalls it’s slightly tricky to use parallelism correctly. So, for example, to fill a directory with 262144 4k files, run:
fio -thread -name=test -direct=1 -ioengine=./libfio_fileserver.so -fsync_on_close=1 \
-directory=/home/bench -chunk_size=4k -size=1G -bs=4k -rw=write:508k \
-numjobs=128 -offset_increment=4k -group_reporting