Create a intermediate file format from a set of fio results #319
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR is the foundation for the work to get CBT to automatically produce a hockey-stick output curve of IOps or Bandwidth vs Latency.
It consists of a python class that will convert the json output from an fio benchmark run in CBT to a common intermediate format, the unit tests for that class, and a wrapper around the class allowing it to be run independently.
The vision is that eventually there will be a class or classes to convert the results from any CBT benchmark run into this intermediate format. This will then allow a single class/utility to be written to produce hockey-stick curves from any CBT benchmark run results.
The next steps are to write the class to plot the data, and then add the code to CBT so it gets run as part of a fio benchmark, possibly using an option in the CBT yaml file
Testing:
Both manual and automated testing were done
Automated:
Teuthology performance tests that run CBT. This is just a regression as no code or behaviour has changed:
perf-basic
https://pulpito.ceph.com/harriscr-2024-11-19_09:33:42-perf-basic-wip-harriscr-cbt-refactor-2024-10-17-0839-distro-default-smithi/
rados/perf
https://pulpito.ceph.com/harriscr-2024-11-19_09:23:32-rados:perf-wip-harriscr-cbt-refactor-2024-10-17-0839-distro-default-smithi/
crimson-rados/perf
https://pulpito.ceph.com/harriscr-2024-11-19_09:34:16-crimson-rados:perf-wip-harriscr-cbt-refactor-2024-10-17-0839-distro-default-smithi/
Python unit tests:
Python tools
black, mypy and ruff were all run to check for pep8 compliance:
Manual
Ran the wrapper against a folder of fio test results:
common_formatter_wrapper_testing.txt
An example file:
4096B_randread.json
The associated hockey-stick curve: