3FS/benchmarks/fio_usrbio/README.md
2025-03-04 16:32:49 +08:00

41 lines
1.4 KiB
Markdown

# FIO engine for 3FS USRBIO
This repository contains the [fio] external plugin used for benchmarking [3FS] USRBIO.
## Build
First, build 3FS and fio.
Configure the following variables:
- `HF3FS_LIB_DIR`: directory contains `libhf3fs_api_shared.so`, the default path in 3FS repo is `3FS/build/src/lib/api`.
- `HF3FS_INCLUDE_DIR`: directory contains `hf3fs_usrbio.h`, the default path in 3FS repo is `3FS/src/lib/api`.
- `FIO_SRC_DIR`: directory contains `config-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`.
## Usage
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
```
[fio]: https://github.com/axboe/fio
[3FS]: https://github.com/deepseek-ai/3FS
[fio documentation]: https://fio.readthedocs.io/en/latest/fio_doc.html