freebsd-skq/sys
mav 5502ac3ee9 MFV 331710:
9188 increase size of dbuf cache to reduce indirect block decompression

illumos/illumos-gate@268bbb2a2f

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>
2018-03-28 23:05:48 +00:00
..
amd64 Restore r331606 with a bugfix to setup cpuset_domain[] earlier on all 2018-03-28 18:47:35 +00:00
arm aw_sid(4): Release resources and destroy mutex on failure 2018-03-26 14:03:39 +00:00
arm64 Rename assym.s to assym.inc 2018-03-20 17:58:51 +00:00
bsm sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
cam Flag when we have a pending TUR. Don't schedule another one when we 2018-03-23 16:23:15 +00:00
cddl MFV 331710: 2018-03-28 23:05:48 +00:00
compat Swap two instances of regular macros with function macros in the LinuxKPI, 2018-03-28 17:54:34 +00:00
conf MFV r331695, 331700: 9166 zfs storage pool checkpoint 2018-03-28 22:01:27 +00:00
contrib [iwm] Add support for iwm 3168 cards 2018-03-28 07:59:16 +00:00
crypto MFV: libb2: use native calls for secure memory clearance 2018-03-27 14:55:01 +00:00
ddb db_script_exec: use a saved script name when reporting commands executed 2018-03-04 13:27:21 +00:00
dev Fix for regression issue in USB keyboard driver after r304735. 2018-03-28 17:39:23 +00:00
dts Add dtb overlays support 2018-03-24 21:30:24 +00:00
fs Revert r313780 (UFS_ prefix) 2018-03-17 12:59:55 +00:00
gdb amd64: Protect the kernel text, data, and BSS by setting the RW/NX bits 2018-03-06 14:28:37 +00:00
geom When freeing a superblock returned by ffs_sbget, be sure to also 2018-03-24 15:36:25 +00:00
gnu bwn(4): txpid2g/txpid5g[lh] are not defined after sromrev 7; the default 2018-02-13 17:43:54 +00:00
i386 Restore r331606 with a bugfix to setup cpuset_domain[] earlier on all 2018-03-28 18:47:35 +00:00
isa Revert r330780, it was improperly tested and results in taking a spin 2018-03-11 20:13:15 +00:00
kern Restore r331606 with a bugfix to setup cpuset_domain[] earlier on all 2018-03-28 18:47:35 +00:00
kgssapi kgssapi: Remove trivial deadcode 2018-02-14 00:12:03 +00:00
libkern iconv uses strlen directly on user supplied memory 2018-02-26 18:23:36 +00:00
mips Move remaining EF_MIPS_* flags to <sys/elf_common.h>. 2018-03-23 19:31:52 +00:00
modules [iwm] Add support for iwm 3168 cards 2018-03-28 07:59:16 +00:00
net Improve copy-and-pasted versions of SIOCGIFADDR. 2018-03-27 20:51:49 +00:00
net80211 net80211: wrap protection frame allocation into ieee80211_alloc_prot() 2018-03-09 11:33:56 +00:00
netgraph Correct pseudo misspelling in sys/ comments 2018-02-23 18:15:50 +00:00
netinet CC Cubic: fix underflow for cubic_cwnd() 2018-03-26 19:53:36 +00:00
netinet6 This change adds a flag to the DAD entry to indicate whether it is 2018-03-24 13:18:09 +00:00
netipsec Set the proper vnet in IPsec callback functions. 2018-03-20 17:05:23 +00:00
netpfil netpfil: Introduce PFIL_FWD flag 2018-03-23 16:56:44 +00:00
netsmb Unsign some values related to allocation. 2018-01-22 02:08:10 +00:00
nfs Modernize nfssvc(2) registartion. 2018-02-08 20:09:42 +00:00
nfsclient style: Remove remaining deprecated MALLOC/FREE macros 2018-01-25 22:25:13 +00:00
nfsserver sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
nlm Use syscall_helper_register() to register syscalls and initialize though 2018-02-10 01:09:22 +00:00
ofed Improve copy-and-pasted versions of SIOCGIFADDR. 2018-03-27 20:51:49 +00:00
opencrypto opencrypto: Add mechanism to pass multiple crypto blocks to some ciphers 2018-03-27 17:58:00 +00:00
powerpc Debug interrupts aren't instruction traps 2018-03-23 00:40:08 +00:00
riscv Rename assym.s to assym.inc 2018-03-20 17:58:51 +00:00
rpc Do pass removing some write-only variables from the kernel. 2017-12-25 04:48:39 +00:00
security audit(4): fix a typo in a comment 2018-03-17 17:56:08 +00:00
sparc64 Mark psycho interrupts as MPSAFE. It's safe to do so now that we don't 2018-03-21 14:47:17 +00:00
sys ZFS vn_rele_async: catch up with the use of refcount(9) for the vnode use count 2018-03-28 08:55:31 +00:00
teken sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
tests
tools Add dtb overlays support 2018-03-24 21:30:24 +00:00
ufs Revert r313780 (UFS_ prefix) 2018-03-17 12:59:55 +00:00
vm Move vm_ndomains to vm.h where it can be used with a single header include 2018-03-27 03:27:02 +00:00
x86 Restore r331606 with a bugfix to setup cpuset_domain[] earlier on all 2018-03-28 18:47:35 +00:00
xdr sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
xen sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
Makefile Move sys/boot to stand. Fix all references to new location 2017-11-14 23:02:19 +00:00