This repository contains the fio external plugin used for benchmarking 3FS USRBIO.
First, build 3FS and fio.
Configure the following variables:
HF3FS_LIB_DIR
: directory containslibhf3fs_api_shared.so
, the default path in 3FS repo is3FS/build/src/lib/api
.HF3FS_INCLUDE_DIR
: directory containshf3fs_usrbio.h
, the default path in 3FS repo is3FS/src/lib/api
.FIO_SRC_DIR
: directory containsconfig-host.h
. After building fio, this header will be in the root of the fio repo.
Then run:
make HF3FS_LIB_DIR=${HF3FS_LIB_DIR} HF3FS_INCLUDE_DIR=${HF3FS_INCLUDE_DIR} FIO_SRC_DIR=${FIO_SRC_DIR}
You will get the external plugin as hf3fs_usrbio.so
.
To use this plugin, set the ioengine
args in fio as external:hf3fs_usrbio.so
. Please refer to fio documentation for further explanation.
Since multiple 3FS instances might be mounted, you need to specify the 3FS instance during benchmarking. This can be done by adding the mountpoint
arguments (in the .fio
):
mountpoint=/hf3fs/mount/point
To benchmark batched small I/Os, please set these four parameters to batch_size
simultaneously:
iodepth=1024
iodepth_batch_submit=1024
iodepth_batch_complete_min=1024
iodepth_batch_complete_max=1024