Hey folks,
I have a set of 4x SN850X drives that I would like to benchmark in various configurations to see the tradeoffs thereof. I would like to format these in a repeatable way, so I’ve booted into a minimal NixOS ISO and, using disko, I can reliably format these disks and arrange them in the configurations I’d like to test. That’s the setup for the problem I’m facing:
I have been messing around with FIO to test these configurations, but it seems like getting data I can compare and contrast written to a file is not working out for me. There are a lot of options for job output, and I’m really not sure which ones to use. Ideally I would end up with a file for each job that has a report of IOPS & bandwidth for each process, and a total summary of the same, for that job. I am generating the fio job file with some dumb code:
from textwrap import dedent
# stolen from somewhere, basing runs on this command line
# fio --name=WriteAndRead --size=16g --bs={4KB,16KB,1MB} --rw={read, write, randwrite, randread} --ioengine=libaio --sync={0,1} --iodepth=32 --numjobs=1 --direct=1 --end_fsync=1 --gtod_reduce=1 --time_based --runtime=60
bs_params = ["4KB", "16KB", "1MB"]
rw_params = ["read", "write", "randwrite", "randread", "randrw"]
sync_params = [0, 1]
global_params = """
[global]
name=tests
size=32g
ioengine=libaio
iodepth=32
numjobs=8
direct=1
end_fsync=1
gtod_reduce=1
time_based
runtime=120
group_reporting
"""
with open("fio.conf", "w") as fio_conf:
fio_conf.write(global_params)
for bs in bs_params:
for rw in rw_params:
for sync in sync_params:
job_name = f"{bs}_{rw}_sync_{sync}"
job_config = f"""
[{job_name}]
stonewall=1
write_bw_log=logs/{job_name}
bs={bs}
rw={rw}
sync={sync}
"""
fio_conf.write(dedent(job_config))
When I run fio against this job file, I end up with a bunch of empty log files, which isn’t particularly helpful to me.
Does anyone have any advice about how I can go about getting the output I’m looking for from fio for these tests?
Thanks!
Edit: Also if any of these parameters are stupid, or I’m missing some nice-to-have parameters for fio, please let me know!