Skip to content

Add fio-parse-jsons.py tool to parse a set of json FIO files.#307

Merged
sseshasa merged 2 commits intoceph:masterfrom
perezjosibm:wip.add-fio-parse-jsons
Jun 10, 2024
Merged

Add fio-parse-jsons.py tool to parse a set of json FIO files.#307
sseshasa merged 2 commits intoceph:masterfrom
perezjosibm:wip.add-fio-parse-jsons

Conversation

@perezjosibm
Copy link
Contributor

This is the separate commit only for the new standalone tool as described in #306.

New standalone script fio-parse-jsons.py

This script processes a list of FIO JSON output files and produces as output:

  • a gnuplot script,
  • a .dat file with the data to plot,
  • a summary table of FIO results in wiki format, printed to stdout.

This is especially useful to produce a response graph from a set of executions ranging the number of FIO jobs and the iodepth values. The script was written before knowledge of CBT was gained, so in a way is independent of the script driving the tests. A future PR would integrate the functionality of this standalone script with that of CBT.

The following is an example of the execution of the script:

 # python3 /cbt/tools/fio-parse-jsons.py -c crimson200gb_1procs_randwrite_list -t 'Crimson 200GB RBD 4k rw' -a crimson4cores_200gb_1img_4k_1procs_randwrite_avg.json

the arguments are:

  • -c config_file: a txt file containing the list of FIO output JSON file to process,
  • -t title: the string ot use as title for the gnuplot chart,
  • -a cpu_avg.json: a .json file containing the avg CPU utilisation, normally produced by the script parse-top.pl.

The following are the .dat and gnuplot files produced:

 crimson200gb_1procs_randwrite.dat
 crimson200gb_1procs_randwrite.plot

To produce the chart, simply execute

gnuplot classic200gb_1procs_randwrite.plot

the IOPs vs latency chart result is shown below:

crimson200gb_1procs_randwrite

Signed-off-by: Jose J Palacios-Perez <perezjos@uk.ibm.com>
@perezjosibm
Copy link
Contributor Author

Hi @sseshasa, here is the separate commit as requested, thanks!

Copy link
Contributor

@sseshasa sseshasa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just added a couple of comments related to the documentation. I just took a cursory look at the tool and in general it looks good to me.

…g chart

Signed-off-by: Jose J Palacios-Perez <perezjos@uk.ibm.com>
@perezjosibm
Copy link
Contributor Author

Hi @sseshasa, I've updated the PR as per your comments, would you mind to merge this PR (since this being my first one I don't have write permissions yet) Thanks!

@sseshasa
Copy link
Contributor

Hi @sseshasa, I've updated the PR as per your comments, would you mind to merge this PR (since this being my first one I don't have write permissions yet) Thanks!

@perezjosibm Sure! Just FYI, when a change is requested on a commit, it is better to modify the same commit instead of adding a new one. You can make the requested changes and either rebase it on the existing commit itself or use "git commit --amend" to update the last commit like in this case. This helps in maintaining a good clean git history.

The above is something to keep in mind for next time. I will go ahead merge this.

@sseshasa sseshasa merged commit d6287a9 into ceph:master Jun 10, 2024
@perezjosibm perezjosibm deleted the wip.add-fio-parse-jsons branch June 11, 2024 09:11
@perezjosibm
Copy link
Contributor Author

Many thanks @sseshasa, yes I was wondering about that, I'll amend each time I got a new commit then 👍 Cheers

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants