louwrentius / fio-plot

Create charts from FIO storage benchmark tool output
BSD 3-Clause "New" or "Revised" License
370 stars 87 forks source link

fio-plot: Could not find any (matching) JSON files in the specified directory #100

Closed cmonty14 closed 1 year ago

cmonty14 commented 1 year ago

Hi, I created fio benchmark for 3 different drives using this command with = HDD, SSD, MANILA: bench-fio --target /srv/nfsv4/benchmark --output CCLOUD_<drive> --type file --size 10G --mode randread randwrite --block-size 4k 64M --iodepth 1 --numjobs 1 --direct 1 --engine libaio --precondition --runtime 60 --destructive --extra-opts norandommap=1 refill_buffers=1

This created the following output files:

├── CCLOUD_<drive>
│   └── fio
│       ├── 1m
│       │   └── run-1
│       │       ├── write-64-1.json
│       │       ├── write-iodepth-64-numjobs-1_bw.1.log
│       │       ├── write-iodepth-64-numjobs-1_clat.1.log
│       │       ├── write-iodepth-64-numjobs-1_iops.1.log
│       │       ├── write-iodepth-64-numjobs-1_lat.1.log
│       │       └── write-iodepth-64-numjobs-1_slat.1.log
│       ├── 4k
│       │   ├── randread-1-1.json
│       │   ├── randread-iodepth-1-numjobs-1_bw.1.log
│       │   ├── randread-iodepth-1-numjobs-1_clat.1.log
│       │   ├── randread-iodepth-1-numjobs-1_iops.1.log
│       │   ├── randread-iodepth-1-numjobs-1_lat.1.log
│       │   ├── randread-iodepth-1-numjobs-1_slat.1.log
│       │   ├── randwrite-1-1.json                                                                                                                                                                                         │       │   ├── randwrite-iodepth-1-numjobs-1_bw.1.log
│       │   ├── randwrite-iodepth-1-numjobs-1_clat.1.log
│       │   ├── randwrite-iodepth-1-numjobs-1_iops.1.log
│       │   ├── randwrite-iodepth-1-numjobs-1_lat.1.log
│       │   └── randwrite-iodepth-1-numjobs-1_slat.1.log
│       ├── 64M
│       │   ├── randread-1-1.json
│       │   ├── randread-iodepth-1-numjobs-1_bw.1.log
│       │   ├── randread-iodepth-1-numjobs-1_clat.1.log
│       │   ├── randread-iodepth-1-numjobs-1_iops.1.log
│       │   ├── randread-iodepth-1-numjobs-1_lat.1.log
│       │   ├── randread-iodepth-1-numjobs-1_slat.1.log
│       │   ├── randwrite-1-1.json
│       │   ├── randwrite-iodepth-1-numjobs-1_bw.1.log
│       │   ├── randwrite-iodepth-1-numjobs-1_clat.1.log
│       │   ├── randwrite-iodepth-1-numjobs-1_iops.1.log
│       │   ├── randwrite-iodepth-1-numjobs-1_lat.1.log
│       │   └── randwrite-iodepth-1-numjobs-1_slat.1.log
│       └── randrw75
│           ├── 4k
│           │   ├── randrw-1-1.json
│           │   ├── randrw-iodepth-1-numjobs-1_bw.1.log
│           │   ├── randrw-iodepth-1-numjobs-1_clat.1.log
│           │   ├── randrw-iodepth-1-numjobs-1_iops.1.log
│           │   ├── randrw-iodepth-1-numjobs-1_lat.1.log
│           │   └── randrw-iodepth-1-numjobs-1_slat.1.log                                                                                                                                                                  │           └── 64M
│               ├── randrw-1-1.json
│               ├── randrw-iodepth-1-numjobs-1_bw.1.log
│               ├── randrw-iodepth-1-numjobs-1_clat.1.log
│               ├── randrw-iodepth-1-numjobs-1_iops.1.log
│               ├── randrw-iodepth-1-numjobs-1_lat.1.log
│               └── randrw-iodepth-1-numjobs-1_slat.1.log

As a next step I want to compare these benchmark results and executed this command that fails with error:

$ fio-plot -i /srv/nfsv4/benchmark/CCLOUD_HDD/fio /srv/nfsv4/benchmark/CCLOUD_SSD/fio /srv/nfsv4/benchmark/CCLOUD_MANILA/fio -T "Comparing CCloud HDD/SSD/Manila" --subtitle "| rand
read | iodepth 1 | jobs 1 |" -C --rw randread --xlabel-parent 0

Could not find any (matching) JSON files in the specified directory /srv/nfsv4/benchmark/CCLOUD_MANILA/fio

Are the correct directories specified?

If so, please check the -d ([1]) -n ([1]) and -r (randread) parameters.

I understand the error message, however can you please advise how to compare the available benchmarks correctly?

THX

louwrentius commented 1 year ago

Sorry I feel that I overlooked this one. You need to also include the /4k folders if you haven't figured that one out in the mean time. Let me know if that solves the issue.

louwrentius commented 1 year ago

I'm closing this issue, let me know if it's not resolved.

thinkingcap commented 1 year ago

Is there a way to break down the x axis by block size on a single graph?

louwrentius commented 1 year ago

Yes, you need to specify with -i each folder containing the data for a particular block size (see readme for example). Then you use a compare chart type -C and a fixed iodepth and numbjobs -d -n

thinkingcap commented 1 year ago

Yes, I got as far as fio-plot -i SAMSUNG883/4k/ SAMSUNG883/64k/ SAMSUNG883/128k/ SAMSUNG883/512k/ SAMSUNG883/1m -T "Samsung 883 DCT" -C -r randread -d 8

Which is great for my needs