• Ameer Hamza's avatar
    zvol: use multiple taskq · 3e5bf3a1
    Ameer Hamza authored
    
    
    Currently, zvol uses a single taskq, resulting in throughput bottleneck
    under heavy load due to lock contention on the single taskq. This patch
    addresses the performance bottleneck under heavy load conditions by
    utilizing multiple taskqs, thus mitigating lock contention. The number
    of taskqs scale dynamically based on the available CPUs in the system,
    as illustrated below:
    
                    taskq   total
    cpus    taskqs  threads threads
    ------- ------- ------- -------
    1       1       32       32
    2       1       32       32
    4       1       32       32
    8       2       16       32
    16      3       11       33
    32      5       7        35
    64      8       8        64
    128     11      12       132
    256     16      16       256
    Signed-off-by: default avatarAmeer Hamza <ahamza@ixsystems.com>
    3e5bf3a1
zfs.4 104 KB