axboe / fio

Flexible I/O Tester
GNU General Public License v2.0
5.26k stars 1.26k forks source link

Running fio on zfs pool with terse omits last couples of columns output #1555

Open mmoole opened 1 year ago

mmoole commented 1 year ago

Please acknowledge the following before creating a ticket

Description of the bug: Running fio on a file on a zpool or not gives different output when set to terse:

$ sudo fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --bs=4k --iodepth=64 --readwrite=randrw --rwmixread=75 --size=100M --filename=fiotestfile --output-format=terse --terse-version=3
3;fio-3.27;test;0;0;76932;118356;29589;650;0;0;0.000000;0.000000;0;0;0.000000;0.000000;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0;0;0.000000;0.000000;120632;120632;100.000000%;120632.000000;0.000000;25468;39181;9795;650;0;0;0.000000;0.000000;0;0;0.000000;0.000000;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0;0;0.000000;0.000000;40136;40136;100.000000%;40136.000000;0.000000;2.465331%;43.297381%;8342;0;8;0.1%;0.1%;0.1%;0.1%;0.1%;0.1%;99.8%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;sda;14914;4958;17;4;16177;3202;19379;83.03%
$ sudo fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --bs=4k --iodepth=64 --readwrite=randrw --rwmixread=75 --size=100M --filename=/zpoolbench/fiotestfile --output-format=terse --terse-version=3
3;fio-3.27;test;0;0;76932;23102;5775;3330;0;0;0.000000;0.000000;0;0;0.000000;0.000000;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0;0;0.000000;0.000000;18224;25464;96.920902%;22390.666667;2621.473987;25468;7648;1912;3330;0;0;0.000000;0.000000;0;0;0.000000;0.000000;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0%=0;0;0;0.000000;0.000000;5664;8224;97.175732%;7432.000000;980.083262;0.750976%;14.809252%;13169;0;7;0.1%;0.1%;0.1%;0.1%;0.1%;0.1%;99.8%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%

It seems that fio cannot get a disk name and thus stops outputting data in terse format with the column 'disk_name'. But it would be quite useful to have also this data...

Environment: Linux bla54 5.14.0-162.18.1.el9_1.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Feb 28 03:54:43 EST 2023 x86_64 x86_64 x86_64 GNU/Linux (this is Almalinux 9.1)

fio version: 3.27 (this is the newest as per dnf 🤷), fio-3.34-21-g2d8c2 but without --ioengine=libaio

Reproduction steps

(edited for adding info regarding zfs version and newer version of fio)

vincentkfu commented 1 year ago

Disk utilization data is not available for files residing on ZFS pools. The data come from https://www.kernel.org/doc/Documentation/block/stat.txt but there is no single block device that fio can associate with the ZFS pool where the file resides.

The same is true for files residing on btrfs file systems.

Someone could enhance the disk utilization code to accommodate this use case but fio currently lacks this capability.

mmoole commented 1 year ago

That makes perfect sense, maybe this applies to even more cases like software raid etc... This could be added to the documentation on terse output, I would suggest.