mirror of
https://github.com/deepseek-ai/3FS
synced 2025-06-26 18:16:45 +00:00
41 lines
1.4 KiB
Markdown
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
|