mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-25 02:49:32 +03:00
Disable arc_p adapt dampener by default
It's unclear why adjustments to arc_p need to be dampened as they are in arc_adjust. With that said, it's removal significantly improves the arc's ability to "warm up" to a given workload. Thus, I'm disabling by default until its usefulness is better understood. Signed-off-by: Prakash Surya <surya1@llnl.gov> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Issue #2110
This commit is contained in:
parent
f521ce1b9c
commit
624227854e
@ -304,6 +304,17 @@ Disable aggressive arc_p growth
|
||||
Use \fB1\fR for yes (default) and \fB0\fR to disable.
|
||||
.RE
|
||||
|
||||
.sp
|
||||
.ne 2
|
||||
.na
|
||||
\fBzfs_arc_p_dampener_disable\fR (int)
|
||||
.ad
|
||||
.RS 12n
|
||||
Disable arc_p adapt dampener
|
||||
.sp
|
||||
Use \fB1\fR for yes (default) and \fB0\fR to disable.
|
||||
.RE
|
||||
|
||||
.sp
|
||||
.ne 2
|
||||
.na
|
||||
|
@ -175,6 +175,9 @@ int zfs_arc_grow_retry = 5;
|
||||
/* disable anon data aggressively growing arc_p */
|
||||
int zfs_arc_p_aggressive_disable = 1;
|
||||
|
||||
/* disable arc_p adapt dampener in arc_adapt */
|
||||
int zfs_arc_p_dampener_disable = 1;
|
||||
|
||||
/* log2(fraction of arc to reclaim) */
|
||||
int zfs_arc_shrink_shift = 5;
|
||||
|
||||
@ -2633,7 +2636,9 @@ arc_adapt(int bytes, arc_state_t *state)
|
||||
if (state == arc_mru_ghost) {
|
||||
mult = ((arc_mru_ghost->arcs_size >= arc_mfu_ghost->arcs_size) ?
|
||||
1 : (arc_mfu_ghost->arcs_size/arc_mru_ghost->arcs_size));
|
||||
mult = MIN(mult, 10); /* avoid wild arc_p adjustment */
|
||||
|
||||
if (!zfs_arc_p_dampener_disable)
|
||||
mult = MIN(mult, 10); /* avoid wild arc_p adjustment */
|
||||
|
||||
arc_p = MIN(arc_c, arc_p + bytes * mult);
|
||||
} else if (state == arc_mfu_ghost) {
|
||||
@ -2641,7 +2646,9 @@ arc_adapt(int bytes, arc_state_t *state)
|
||||
|
||||
mult = ((arc_mfu_ghost->arcs_size >= arc_mru_ghost->arcs_size) ?
|
||||
1 : (arc_mru_ghost->arcs_size/arc_mfu_ghost->arcs_size));
|
||||
mult = MIN(mult, 10);
|
||||
|
||||
if (!zfs_arc_p_dampener_disable)
|
||||
mult = MIN(mult, 10);
|
||||
|
||||
delta = MIN(bytes * mult, arc_p);
|
||||
arc_p = MAX(0, arc_p - delta);
|
||||
@ -5554,6 +5561,9 @@ MODULE_PARM_DESC(zfs_arc_grow_retry, "Seconds before growing arc size");
|
||||
module_param(zfs_arc_p_aggressive_disable, int, 0644);
|
||||
MODULE_PARM_DESC(zfs_arc_p_aggressive_disable, "disable aggressive arc_p grow");
|
||||
|
||||
module_param(zfs_arc_p_dampener_disable, int, 0644);
|
||||
MODULE_PARM_DESC(zfs_arc_p_dampener_disable, "disable arc_p adapt dampener");
|
||||
|
||||
module_param(zfs_arc_shrink_shift, int, 0644);
|
||||
MODULE_PARM_DESC(zfs_arc_shrink_shift, "log2(fraction of arc to reclaim)");
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user