OpenZFS 9188 - increase size of dbuf cache to reduce indirect block decompression #7273
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.
Description
With compressed ARC (OpenZFS 6950) we use up to 25% of our CPU to decompress
indirect blocks, under a workload of random cached reads. To reduce this
decompression cost, we would like to increase the size of the dbuf cache so
that more indirect blocks can be stored uncompressed.
If we are caching entire large files of recordsize=8K, the indirect blocks
use 1/64th as much memory as the data blocks (assuming they have the same
compression ratio). We suggest making the dbuf cache be 1/32nd of all memory,
so that in this scenario we should be able to keep all the indirect blocks
decompressed in the dbuf cache. (We want it to be more than the 1/64th that
the indirect blocks would use because we need to cache other stuff in the dbuf
cache as well.)
In real world workloads, this won't help as dramatically as the example above,
but we think it's still worth it because the risk of decreasing performance is
low. The potential negative performance impact is that we will be slightly
reducing the size of the ARC (by ~3%).
Porting Notes:
Authored by: George Wilson [email protected]
Reviewed by: Dan Kimmel [email protected]
Reviewed by: Prashanth Sreenivasa [email protected]
Reviewed by: Paul Dagnelie [email protected]
Ported-by: Brian Behlendorf [email protected]
Motivation and Context
OpenZFS-issue: https://www.illumos.org/issues/9188
OpenZFS-commit: openzfs/openzfs#564
Upstream bug: DLPX-46942
And issues #6880 and #7255.
How Has This Been Tested?
Performance testing done for the OpenZFS PR, pending results from Buildbot .
Types of changes
Checklist:
Signed-off-by
.