Extend librbdfio.py with a new workloads block. Add minor fixes.#306
Extend librbdfio.py with a new workloads block. Add minor fixes.#306perezjosibm merged 1 commit intoceph:masterfrom
Conversation
c0674af to
5259d8b
Compare
|
@markhpc : here is my PR for the CBT extensions, would you be able to review please? thanks! |
5259d8b to
172ecf4
Compare
|
@perezjosibm I have started taking a look at this. Please allow me some time to understand the changes. I plan to complete the review by the end of this week or in the worst case early next week due to the long weekend here. |
sseshasa
left a comment
There was a problem hiding this comment.
I have added my first set of review comments. Will continue the review.
Hmm...looks like my initial comments were lost. I will add them again. Sorry about that. |
sseshasa
left a comment
There was a problem hiding this comment.
Okay, now my first set of comments are added. Will continue reviewing this.
sseshasa
left a comment
There was a problem hiding this comment.
I am done with the first pass and have provided my comments.
- I mainly focused on the main parts of the code changes related to benchmark.
- One important recommendation is to ensure through testing that the original behavior of librbdfio benchmark is preserved
cbt.py
Outdated
| #logger.debug("Settings.cluster.is_teuthology:%s",settings.cluster.get('is_teuthology', False)) | ||
| # Run the benchmarks | ||
| return_code = 0 | ||
|
|
tools/fio-parse-json.py
Outdated
| sys.exit(NOTOK) | ||
|
|
||
|
|
||
| # next_branch: token from the input path |
There was a problem hiding this comment.
It looks like the changes in this file is formatting related. I'd suggest this change alone be moved to a different commit along with an explanation of why changes were made to this file.
| @@ -0,0 +1,382 @@ | |||
| #!/usr/bin/python3 | |||
There was a problem hiding this comment.
Since this is a standalone tool, I'd suggest the following:
- Introduce this tool as part of a separate commit.
- Move it to it's own directory under 'tools'.
- Include a README.md in the new directory with details around the usage, examples, charts and so on as you have described in this file.
There was a problem hiding this comment.
Makes sense, yes I'll do that asap
There was a problem hiding this comment.
Hi @perezjosibm I mean introduce the new script in a new commit as a part of this PR(#306) itself. I will take look again once you have pushed all the requested changes. Thanks!
There was a problem hiding this comment.
Hi @sseshasa sorry about that, I hope you don't mind reviewing them separately. I have updated this PR with the requested changes to the best of my understanding. I did a git ci -s -a --amend to have them all in a single batch. Many thanks.
172ecf4 to
ea446a9
Compare
ea446a9 to
eb0670b
Compare
|
Apologies, I just fixed some subtle bugs I introduced when doing the changes that didn't show up in the preliminary tests, I need to push the fixes again, sorry for the disturbance! |
|
Hi @sseshasa changes are ready for review please, many thanks! |
Signed-off-by: Jose J Palacios-Perez <perezjos@uk.ibm.com>
eb0670b to
5823498
Compare
|
Hi @Matan-B wonder if you could please review/approve this PR?, Thanks |

This is my first PR, please be gentle in the review. We add the following new features into the CBT for the benchmark librbdfio:
Extend the test plan .yml with a new block section 'workloads' to allow a list of performance tests to be indicated, each with its own range of iodepth and numjobs to iterate. An example of this is provided in
example/rbd_fio_test.ymlExtend librbdfio.py with support for such 'workloads' block.
New workloads block
The value of this new workloads block is to allow a finer description of a test job, for example, indicating a range for the iodepth and numjobs FIO parameters, as well as whether to monitor the execution (eg. with perf, top, or collectl). This allow the collection of measurements for computing a response curve.
Here is a snippet that describes:
The following snippet shows the execution of the precondition phase:

The following snippet shows the execution of the tests1 and 2:

The following snippet shows the resulting files from the execution of the test:
