Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

iotune may use a too-low iodepth #2177

Open
travisdowns opened this issue Apr 3, 2024 · 2 comments
Open

iotune may use a too-low iodepth #2177

travisdowns opened this issue Apr 3, 2024 · 2 comments

Comments

@travisdowns
Copy link
Contributor

iotune uses nr_requests to select the iodepth to use for its IOPS-related benchmarks: it sums the nr_requests value from the involved disks (including the underlying devices if md is being used). However, nr_requests is not an upper bound on the amount of requests that can be in flight in a disk: see here for example:

... Note that nr_requests only applies to the I/O operations within the I/O scheduler and not to I/O operations already dispatched to the underlying device. Therefore, the maximum outstanding limit of I/O operations against a device is (nr_requests*2)+(queue_depth) where queue_depth is /sys/block/sdN/device/queue_depth, sometimes also referred to as the LUN queue depth. You can see this total outstanding number of I/O operations in, for example, the output of iostat in the avgqu-sz column.

This is actually noticeable when testing the same devices with fio: performance may keep increasing even as iodepth rises above the nr_requests value. Perhaps we should use the sum of the block device queue size + nr_requests. Or make it configurable.

@mykaul
Copy link

mykaul commented Apr 4, 2024

Ref #1297

@mykaul
Copy link

mykaul commented Apr 4, 2024

CC @xemul

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

No branches or pull requests

2 participants