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

[2.1] spa: make read/write queues configurable #15696

Merged

Commits on Dec 21, 2023

  1. spa: make read/write queues configurable

    We are finding that as customers get larger and faster machines
    (hundreds of cores, large NVMe-backed pools) they keep hitting
    relatively low performance ceilings. Our profiling work almost always
    finds that they're running into bottlenecks on the SPA IO taskqs.
    Unfortunately there's often little we can advise at that point, because
    there's very few ways to change behaviour without patching.
    
    This commit adds two load-time parameters `zio_taskq_read` and
    `zio_taskq_write` that can configure the READ and WRITE IO taskqs
    directly.
    
    This achieves two goals: it gives operators (and those that support
    them) a way to tune things without requiring a custom build of OpenZFS,
    which is often not possible, and it lets us easily try different config
    variations in a variety of environments to inform the development of
    better defaults for these kind of systems.
    
    Because tuning the IO taskqs really requires a fairly deep understanding
    of how IO in ZFS works, and generally isn't needed without a pretty
    serious workload and an ability to identify bottlenecks, only minimal
    documentation is provided. Its expected that anyone using this is going
    to have the source code there as well.
    
    Signed-off-by: Rob Norris <[email protected]>
    Sponsored-by: Klara, Inc.
    Sponsored-by: Wasabi Technology, Inc.
    robn committed Dec 21, 2023
    Configuration menu
    Copy the full SHA
    199ba5c View commit details
    Browse the repository at this point in the history