Add L2ARC tunables
The performance of the L2ARC can be tweaked by a number of tunables, which may be necessary for different workloads: l2arc_write_max max write bytes per interval l2arc_write_boost extra write bytes during device warmup l2arc_noprefetch skip caching prefetched buffers l2arc_headroom number of max device writes to precache l2arc_feed_secs seconds between L2ARC writing l2arc_feed_min_ms min feed interval in milliseconds l2arc_feed_again turbo L2ARC warmup l2arc_norw no reads during writes Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes #316
This commit is contained in:
parent
e0f86c9862
commit
abd8610cd5
|
@ -582,14 +582,14 @@ uint64_t zfs_crc64_table[256];
|
||||||
/*
|
/*
|
||||||
* L2ARC Performance Tunables
|
* L2ARC Performance Tunables
|
||||||
*/
|
*/
|
||||||
uint64_t l2arc_write_max = L2ARC_WRITE_SIZE; /* default max write size */
|
unsigned long l2arc_write_max = L2ARC_WRITE_SIZE; /* def max write size */
|
||||||
uint64_t l2arc_write_boost = L2ARC_WRITE_SIZE; /* extra write during warmup */
|
unsigned long l2arc_write_boost = L2ARC_WRITE_SIZE; /* extra warmup write */
|
||||||
uint64_t l2arc_headroom = L2ARC_HEADROOM; /* number of dev writes */
|
unsigned long l2arc_headroom = L2ARC_HEADROOM; /* # of dev writes */
|
||||||
uint64_t l2arc_feed_secs = L2ARC_FEED_SECS; /* interval seconds */
|
unsigned long l2arc_feed_secs = L2ARC_FEED_SECS; /* interval seconds */
|
||||||
uint64_t l2arc_feed_min_ms = L2ARC_FEED_MIN_MS; /* min interval milliseconds */
|
unsigned long l2arc_feed_min_ms = L2ARC_FEED_MIN_MS; /* min interval msecs */
|
||||||
boolean_t l2arc_noprefetch = B_TRUE; /* don't cache prefetch bufs */
|
int l2arc_noprefetch = B_TRUE; /* don't cache prefetch bufs */
|
||||||
boolean_t l2arc_feed_again = B_TRUE; /* turbo warmup */
|
int l2arc_feed_again = B_TRUE; /* turbo warmup */
|
||||||
boolean_t l2arc_norw = B_TRUE; /* no reads during writes */
|
int l2arc_norw = B_TRUE; /* no reads during writes */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* L2ARC Internals
|
* L2ARC Internals
|
||||||
|
@ -4796,4 +4796,28 @@ MODULE_PARM_DESC(zfs_arc_shrink_shift, "log2(fraction of arc to reclaim)");
|
||||||
module_param(zfs_arc_p_min_shift, int, 0444);
|
module_param(zfs_arc_p_min_shift, int, 0444);
|
||||||
MODULE_PARM_DESC(zfs_arc_p_min_shift, "arc_c shift to calc min/max arc_p");
|
MODULE_PARM_DESC(zfs_arc_p_min_shift, "arc_c shift to calc min/max arc_p");
|
||||||
|
|
||||||
|
module_param(l2arc_write_max, ulong, 0444);
|
||||||
|
MODULE_PARM_DESC(l2arc_write_max, "Max write bytes per interval");
|
||||||
|
|
||||||
|
module_param(l2arc_write_boost, ulong, 0444);
|
||||||
|
MODULE_PARM_DESC(l2arc_write_boost, "Extra write bytes during device warmup");
|
||||||
|
|
||||||
|
module_param(l2arc_headroom, ulong, 0444);
|
||||||
|
MODULE_PARM_DESC(l2arc_headroom, "Number of max device writes to precache");
|
||||||
|
|
||||||
|
module_param(l2arc_feed_secs, ulong, 0444);
|
||||||
|
MODULE_PARM_DESC(l2arc_feed_secs, "Seconds between L2ARC writing");
|
||||||
|
|
||||||
|
module_param(l2arc_feed_min_ms, ulong, 0444);
|
||||||
|
MODULE_PARM_DESC(l2arc_feed_min_ms, "Min feed interval in milliseconds");
|
||||||
|
|
||||||
|
module_param(l2arc_noprefetch, int, 0444);
|
||||||
|
MODULE_PARM_DESC(l2arc_noprefetch, "Skip caching prefetched buffers");
|
||||||
|
|
||||||
|
module_param(l2arc_feed_again, int, 0444);
|
||||||
|
MODULE_PARM_DESC(l2arc_feed_again, "Turbo L2ARC warmup");
|
||||||
|
|
||||||
|
module_param(l2arc_norw, int, 0444);
|
||||||
|
MODULE_PARM_DESC(l2arc_norw, "No reads during writes");
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue