ceph / ceph/cbt

kvmrbdfio ignores time_based from YAML

Open
#363 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
307
Forks
151
Avg merge
14d 23h
Merged PRs (30d)
1

Description

Currently, librbdfio honors `time_based: True` from the benchmark YAML and passes `--time_based` to fio.

kvmrbdfio does not. It always passes `--runtime=` and `--size=`, and it only adds `--time_based` when `recovery_test` is set.

Without `--time_based`, fio treats `--runtime` as a maximum. The job still stops when `--size=` is filled. Sequential write/read of a modest image can finish in a few seconds even when YAML asked for a any seconds sample.

That makes `librbdfio` vs `kvmrbdfio` comparisons with the same `time` / `time_based` YAML invalid: one path ran for the full window, the other may not have.

Even with:

```yaml
benchmarks:
kvmrbdfio:
time: 60
time_based: True
```

fio should run for 60 seconds (--runtime=60 --time_based), same as librbdfio, I personally faced this a benchmarking limitation while running cbt for my own ceph cluster.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by locating the kvmrbdfio entry point that converts benchmark YAML into fio arguments, then compare its handling of time_based with librbdfio. Verify the YAML example produces --runtime=60 together with --time_based, and confirm the benchmark runs for the requested time window.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
performance
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
70/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.