mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 10:37:35 +03:00
set zfs_arc_shrinker_limit to 0 by default
zfs_arc_shrinker_limit was introduced to avoid ARC collapse due to aggressive kernel reclaim. While useful, the current default (10000) is too prone to OOM especially when MGLRU-enabled kernels with default min_ttl_ms are used. Even when no OOM happens, it often causes too much swap usage. This patch sets zfs_arc_shrinker_limit=0 to not ignore kernel reclaim requests. ARC now plays better with both kernel shrinker and pagecache but, should ARC collapse happen again, MGLRU behavior can be tuned or even disabled. Anyway, zfs should not cause OOM when ARC can be released. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Alexander Motin <mav@FreeBSD.org> Signed-off-by: Gionatan Danti <g.danti@assyoma.it> Closes #16909
This commit is contained in:
committed by
Brian Behlendorf
parent
b952e061df
commit
c2d9494f99
@@ -63,7 +63,7 @@
|
||||
* practice, the kernel's shrinker can ask us to evict up to about 4x this
|
||||
* for one allocation attempt.
|
||||
*
|
||||
* The default limit of 10,000 (in practice, 160MB per allocation attempt
|
||||
* For example a value of 10,000 (in practice, 160MB per allocation attempt
|
||||
* with 4K pages) limits the amount of time spent attempting to reclaim ARC
|
||||
* memory to less than 100ms per allocation attempt, even with a small
|
||||
* average compressed block size of ~8KB.
|
||||
@@ -71,7 +71,7 @@
|
||||
* See also the comment in arc_shrinker_count().
|
||||
* Set to 0 to disable limit.
|
||||
*/
|
||||
static int zfs_arc_shrinker_limit = 10000;
|
||||
static int zfs_arc_shrinker_limit = 0;
|
||||
|
||||
/*
|
||||
* Relative cost of ARC eviction, AKA number of seeks needed to restore evicted
|
||||
|
||||
Reference in New Issue
Block a user