]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
9188 increase size of dbuf cache to reduce indirect block decompression
authorAlexander Motin <mav@FreeBSD.org>
Wed, 28 Mar 2018 22:57:02 +0000 (22:57 +0000)
committerAlexander Motin <mav@FreeBSD.org>
Wed, 28 Mar 2018 22:57:02 +0000 (22:57 +0000)
commita1773e8b7acce9ba12d9fd4998a3e6d1b1da4fa9
treef5874fba4236b04c4460e026386f6f3c7616b5b7
parentbc1a4f2e3ceee9d59c8538cd31c7a5c04e8c49af
9188 increase size of dbuf cache to reduce indirect block decompression

illumos/illumos-gate@268bbb2a2fa79c36d4695d13a595ba50a7754b76

With compressed ARC (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%).

Reviewed by: Dan Kimmel <dan.kimmel@delphix.com>
Reviewed by: Prashanth Sreenivasa <pks@delphix.com>
Reviewed by: Paul Dagnelie <pcd@delphix.com>
Reviewed by: Sanjay Nadkarni <sanjay.nadkarni@nexenta.com>
Reviewed by: Allan Jude <allanjude@freebsd.org>
Reviewed by: Igor Kozhukhov <igor@dilos.org>
Approved by: Garrett D'Amore <garrett@damore.org>
Author: George Wilson <george.wilson@delphix.com>
uts/common/fs/zfs/dbuf.c