Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 13 Sep 2018 17:56:48 +0000 (UTC)
From:      Eric van Gyzen <vangyzen@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r338656 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
Message-ID:  <201809131756.w8DHumQq055861@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: vangyzen
Date: Thu Sep 13 17:56:48 2018
New Revision: 338656
URL: https://svnweb.freebsd.org/changeset/base/338656

Log:
  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

Modified:
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c

Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c	Thu Sep 13 17:39:08 2018	(r338655)
+++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c	Thu Sep 13 17:56:48 2018	(r338656)
@@ -538,8 +538,13 @@ 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;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201809131756.w8DHumQq055861>