Arc limits ignored on 11 ?

Paul van der Zwan paulz at vanderzwan.org
Wed Sep 6 15:36:40 UTC 2017


Hi, 
I am running 11 (FreeBSD 11.1-STABLE #0 r323186: Tue Sep  5 23:58:23 CEST 2017)
on a 1GB VPS and want to limit ZFS ARC size to leave some room for mysql etc.
It seems that on 11 the ARC max is sysctl is not a hard limit.

I just ran svn update and built world and kernel.
After rebooting the new kernel and running make buildworld and mergemaster the ARC is more than 6 time the size I set as max:

$ zfs-stats -A

------------------------------------------------------------------------
ZFS Subsystem Report				Wed Sep  6 17:28:05 2017
------------------------------------------------------------------------

ARC Summary: (HEALTHY)
	Memory Throttle Count:			0

ARC Misc:
	Deleted:				20.44k
	Recycle Misses:				0
	Mutex Misses:				19.53k
	Evict Skips:				15.90m

ARC Size:				684.81%	273.93	MiB
	Target Size: (Adaptive)		100.00%	40.00	MiB
	Min Size (Hard Limit):		75.21%	30.08	MiB
	Max Size (High Water):		1:1	40.00	MiB

ARC Size Breakdown:
	Recently Used Cache Size:	11.51%	31.53	MiB
	Frequently Used Cache Size:	88.49%	242.40	MiB

ARC Hash Breakdown:
	Elements Max:				6.64k
	Elements Current:		89.33%	5.94k
	Collisions:				8.44k
	Chain Max:				2
	Chains:					99

————————————————————————————————————

Values from /boot/loader.conf seem to be read but ignored:
$ cat /boot/loader.conf
aesni_load="YES"
geom_eli_load="YES"
vfs.root.mountfrom="zfs:zroot/ROOT/default"
geli_vtbd0p4_keyfile0_load="YES"
geli_vtbd0p4_keyfile0_type="vtbd0p4:geli_keyfile0"
geli_vtbd0p4_keyfile0_name="/boot/encryption.key"
zfs_load="YES"
kern.geom.label.gptid.enable="0"
zpool_cache_load="YES"
zpool_cache_type="/boot/zfs/zpool.cache"
vfs.zfs.arc_max="40M"
vfs.zfs.compressed_arc_enabled=0

I have set primarycache=metadata on the zroot to limit cache use but that does not seem to help:
$ zfs get -r primarycache zroot  |grep -v @
NAME                            PROPERTY      VALUE         SOURCE
zroot                           primarycache  metadata      local
zroot/ROOT                      primarycache  metadata      inherited from zroot
zroot/ROOT/default              primarycache  metadata      inherited from zroot
zroot/tmp                       primarycache  metadata      inherited from zroot
zroot/usr                       primarycache  metadata      inherited from zroot
zroot/usr/home                  primarycache  metadata      inherited from zroot
zroot/usr/obj                   primarycache  metadata      inherited from zroot
zroot/usr/ports                 primarycache  metadata      inherited from zroot
zroot/usr/src                   primarycache  metadata      inherited from zroot
zroot/var                       primarycache  metadata      inherited from zroot
zroot/var/crash                 primarycache  metadata      inherited from zroot
zroot/var/log                   primarycache  metadata      inherited from zroot
zroot/var/mail                  primarycache  metadata      inherited from zroot
zroot/var/tmp                   primarycache  metadata      inherited from zroot


Any idea how I can really restrict ARC size ? 

TIA

	 Paul




More information about the freebsd-fs mailing list