Set zfs_arc_meta_strategy to metadata only

The previous default of "balanced" appears to have caused pathological
behavior, including very poor performance and 100% CPU load in the
arc_reclaim_thread.

The symptoms appeared when the daily periodic run started.
With this change, the system--and the ARC in particular--behaved
normally during a manual daily periodic run.

From Mark Johnston:  The port of the balanced strategy is incomplete,
since arc_prune_async() is a no-op on FreeBSD.  (This also seems
to imply that r337653 is a no-op.)  After 12 is branched we can
port the remaining bits and consider changing the default back.

Submitted by:	markj (essentially)
Reviewed by:	markj
Approved by:	re (gjb)
Sponsored by:	Dell EMC Isilon
Differential Revision:	https://reviews.freebsd.org/D17156
This commit is contained in:
Eric van Gyzen 2018-09-13 17:56:48 +00:00
parent 23679408ce
commit 73511c241b
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=338656

View File

@ -538,9 +538,14 @@ typedef struct arc_state {
*/
int zfs_arc_meta_prune = 10000;
unsigned long zfs_arc_dnode_limit_percent = 10;
int zfs_arc_meta_strategy = ARC_STRATEGY_META_BALANCED;
int zfs_arc_meta_strategy = ARC_STRATEGY_META_ONLY;
int zfs_arc_meta_adjust_restarts = 4096;
SYSCTL_INT(_vfs_zfs, OID_AUTO, arc_meta_strategy, CTLFLAG_RWTUN,
&zfs_arc_meta_strategy, 0,
"ARC metadata reclamation strategy "
"(0 = metadata only, 1 = balance data and metadata)");
/* The 6 states: */
static arc_state_t ARC_anon;
static arc_state_t ARC_mru;