SSV-24185: Fix the number of zvol I/O threads to align with 50% of th… #99
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
SSV-24185
Issue: CPU stuck at 100% is related to ZFS when we use dedup & comp, never able to reproduce the issue with Compression only enable.
Issue: Recovery speeds fluctuate significantly, likely due to CPU and thread contention under heavy I/O. In ZFS, the number of threads that accept I/O from SSY is hardcoded to 32. As a result, systems with fewer CPUs or hyper-threads may end up overusing resources.
Fix: The number of zvol I/O threads to align with 50% of the maximum available logical CPUs if the 'zvol_io_threads' value in 'Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ZFSin' is not specified. If the 'zvol_io_threads' value is provided, use this value for creating the zvol task queue thread pool.
Use kstat.exe zfs:0:tunable to check the current value of zvol_io_threads. This can be set only by updating the registry, and also require a reboot.