Skip to content

Commit 3363539

Browse files
bors[bot]grwilson
andauthored
Merge #154
154: DLPX-66534 arc_prune consumes all cpus r=grwilson a=grwilson Co-authored-by: George Wilson <george.wilson@delphix.com>
2 parents 9034b52 + 9be8b18 commit 3363539

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

files/common/etc/modprobe.d/10-zfs.conf

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,3 +82,18 @@ options zfs zfs_mg_noalloc_threshold=5
8282
# Overriding the property here fixes that.
8383
#
8484
options zfs zfs_override_estimate_recordsize=8192
85+
86+
#
87+
# The default arc metadata eviction policy is a balanced policy. This policy
88+
# evicts both data and metadata and provides a callback to the ZPL layer
89+
# to evict blocks from the inode and dentry caches. This policy has serious
90+
# implications because it tries too hard to reduce metadata so that it's
91+
# below the arc_meta_limit. As a result this can end up consuming all of
92+
# the cpus and causing the system to run out of memory. Since the arc
93+
# metadata eviction is called in the critical path, we want a lightweight
94+
# policy to be used to ensure that eviction happens quickly and new additions
95+
# to the arc are not blocked for a significant amount of time. To do this,
96+
# we changes the metadata eviction policy to ARC_STRATEGY_META_ONLY,
97+
# which is what we used in illumos.
98+
#
99+
options zfs zfs_arc_meta_strategy=0

0 commit comments

Comments
 (0)