Skip to content
  • Inaam Rana's avatar
    7c8e9b5f
    WL#5666: Tuning adaptive flushing · 7c8e9b5f
    Inaam Rana authored
    rb://1000
    approved by: Sunny Bains
    
    Changes in adaptive flushing based on work by Dimtri.
    
    New Parameters:
    ===============
    
    innodb_adaptive_flushing_lwm: low water mark in %age of log capacity at
    which adaptive flushing kicks in. Default 10: Range 0 - 70 (note it is
    %age of log_capacity instead of max_async_age for user friendliness)
    
    innodb_max_dirty_pages_pct_lwm: low water mark of dirty pages in %age
    where preflushing to control dirty page ratio kicks in. Default 0
    (which has the special meaning of this value having no effect).
    Range 0 - 99
    
    innodb_max_io_capacity: The limit upto which we are allowed to stretch
    io_capacity in case of emergency. Default: 400 (which is 2X of default
    innodb_io_capacity). Range 100 - ~0
    
    innodb_flushing_avg_loops: Number of iterations for which we keep the
    previously calculated snapshot of the flushing state. This variable is
    roughly a measure of how smooth you want the transition in the
    flushing activity to be. The higher the value the smoother will be the
    transition in flushing in face of rapidly changing workload. A lower
    value implies that the flushing algorithm is more responsive but it
    also means that flushing acitivity can become spiky when confronted
    with a quickly changing workload. Default value is 30 and permissible
    range is 1 – 1000.
    
    
    All parameters are dynamic.
    
    Existing Parameters:
    ====================
    
    innodb_adaptive_flushing: same as before. Only now it will use the new
    formula.
    
    innodb_io_capacity: same as before. But now tied to
    innodb_max_io_capacity. If user sets innodb_max_io_capacity <
    innodb_io_capacity a warning will be issued and innodb_max_io_capacity
    will be set equal to innodb_io_capacity. If user sets
    innodb_io_capacity > innodb_max_io_capacity a warning will be issued
    and innodb_io_capacity will be set equal to innodb_max_io_capacity.
    
    innodb_max_dirty_pages_pct: same as before. But now tied to
    innodb_max_dirty_pages_pct_lwm.
    If user sets innodb_max_dirty_pct < innodb_max_dirty_pages_pct_lwm
    a warning will be issued and innodb_max_dirty_pages_pct_lwm will be
    lowered to new innodb_max_dirty_pages_pct.
    If user sets innodb_max_dirty_pct_lwm > innodb_max_dirty_pages_pct
    a warning will be issued and innodb_max_dirty_pages_pct_lwm will be set
    equal to innodb_max_dirty_pages_pct.
    7c8e9b5f
    WL#5666: Tuning adaptive flushing
    Inaam Rana authored
    rb://1000
    approved by: Sunny Bains
    
    Changes in adaptive flushing based on work by Dimtri.
    
    New Parameters:
    ===============
    
    innodb_adaptive_flushing_lwm: low water mark in %age of log capacity at
    which adaptive flushing kicks in. Default 10: Range 0 - 70 (note it is
    %age of log_capacity instead of max_async_age for user friendliness)
    
    innodb_max_dirty_pages_pct_lwm: low water mark of dirty pages in %age
    where preflushing to control dirty page ratio kicks in. Default 0
    (which has the special meaning of this value having no effect).
    Range 0 - 99
    
    innodb_max_io_capacity: The limit upto which we are allowed to stretch
    io_capacity in case of emergency. Default: 400 (which is 2X of default
    innodb_io_capacity). Range 100 - ~0
    
    innodb_flushing_avg_loops: Number of iterations for which we keep the
    previously calculated snapshot of the flushing state. This variable is
    roughly a measure of how smooth you want the transition in the
    flushing activity to be. The higher the value the smoother will be the
    transition in flushing in face of rapidly changing workload. A lower
    value implies that the flushing algorithm is more responsive but it
    also means that flushing acitivity can become spiky when confronted
    with a quickly changing workload. Default value is 30 and permissible
    range is 1 – 1000.
    
    
    All parameters are dynamic.
    
    Existing Parameters:
    ====================
    
    innodb_adaptive_flushing: same as before. Only now it will use the new
    formula.
    
    innodb_io_capacity: same as before. But now tied to
    innodb_max_io_capacity. If user sets innodb_max_io_capacity <
    innodb_io_capacity a warning will be issued and innodb_max_io_capacity
    will be set equal to innodb_io_capacity. If user sets
    innodb_io_capacity > innodb_max_io_capacity a warning will be issued
    and innodb_io_capacity will be set equal to innodb_max_io_capacity.
    
    innodb_max_dirty_pages_pct: same as before. But now tied to
    innodb_max_dirty_pages_pct_lwm.
    If user sets innodb_max_dirty_pct < innodb_max_dirty_pages_pct_lwm
    a warning will be issued and innodb_max_dirty_pages_pct_lwm will be
    lowered to new innodb_max_dirty_pages_pct.
    If user sets innodb_max_dirty_pct_lwm > innodb_max_dirty_pages_pct
    a warning will be issued and innodb_max_dirty_pages_pct_lwm will be set
    equal to innodb_max_dirty_pages_pct.
Loading