Extend librbdfio.py with a new workloads block. Add minor fixes.
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.yml -
Extend 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:
- a precondition phase consisting on a random write workload, that is not being monitored, then
- a random read workload over the ranges indicated for the FIO parameters numjobs and iodepth
- a random write workload.
workloads:
precond1:
jobname: 'precond1rw'
mode: 'randwrite'
numjobs: [ 1 ]
iodepth: [ 8 ]
monitor: False
test1:
jobname: 'rr'
mode: 'randread'
numjobs: [ 1, 4, 8 ]
iodepth: [ 1, 4, 16]
test2:
jobname: 'rw'
mode: 'randwrite'
numjobs: [ 4 ]
iodepth: [ 16 ]
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:
@markhpc : here is my PR for the CBT extensions, would you be able to review please? thanks!
@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.
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.
Tested the remote path by running CBT from my laptop, connecting to the remote nodes:
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!
Hi @Matan-B wonder if you could please review/approve this PR?, Thanks