The description of the default value for vfs.zfs.arc_max in the handbook (section 19.6.1.) is inaccurate. I propose phrasing it as follows:
"The default is all RAM but 1 GB, or 5/8 of all RAM, whichever is more."
Here is the actual code defining these default in sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c:
/* set min cache to 1/32 of all memory, or arc_abs_min, whichever is more */
arc_c_min = MAX(allmem / 32, arc_abs_min);
/* set max to 5/8 of all memory, or all but 1GB, whichever is more */
if (allmem >= 1 << 30)
arc_c_max = allmem - (1 << 30);
arc_c_max = arc_c_min;
arc_c_max = MAX(allmem * 5 / 8, arc_c_max);
A commit references this bug:
Date: Mon May 13 15:57:12 UTC 2019
New revision: 53010
Correct the description of vfs.zfs.arc_max.
Update the description of the default value for the vgs.zfs.arc_max tunable.
It changed since the chapter was written and this patch updates it to the
definition in the code.
Submitted by: firstname.lastname@example.org
Reviewed by: allanjude@
I just committed a patch with your suggested wording. Thanks for filing the PR, which is closed now.