]> git.proxmox.com Git - mirror_zfs.git/commit
Reduce number of metaslab preload taskq threads.
authorAlexander Motin <mav@FreeBSD.org>
Fri, 6 Oct 2023 16:04:00 +0000 (12:04 -0400)
committerGitHub <noreply@github.com>
Fri, 6 Oct 2023 16:04:00 +0000 (09:04 -0700)
commit342357cd9e719d9271f6d1bd339c6a92e6d19785
treef91eb908dbeb53863ad9173c7ee4d53e5ccd2db1
parent75a2eb7facc4d82a114198521bc6c87c06d10a1a
Reduce number of metaslab preload taskq threads.

Before this change ZFS created threads for 50% of CPUs for each top-
level vdev.  Plus it created the same number of threads for embedded
log groups (that have only one metaslab and don't need any preload).
As result, on system with 80 CPUs and pool of 60 vdevs this resulted
in 4800 metaslab preload threads, that is absolutely insane.

This patch changes the preload threads to 50% of CPUs in one taskq
per pool, so on the mentioned system it will be only 40 threads.

Among other things this fixes zdb on the mentioned system and pool
on FreeBSD, that failed to create so many threads in one process.

Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Alexander Motin <mav@FreeBSD.org>
Sponsored by: iXsystems, Inc.
Closes #15319
include/sys/metaslab_impl.h
include/sys/spa_impl.h
man/man4/zfs.4
module/os/freebsd/zfs/sysctl_os.c
module/zfs/metaslab.c
module/zfs/spa.c