innodb_max_dirty_pages_pct_lwm - xiaoboluo768/qianjinliangfang GitHub Wiki

  • 该参数可以控制脏页刷新的速率,它定义了脏页比例的低水位标记,表示启用预刷新活动的脏页的百分比,以控制脏页率。
    • 全局变量,动态变量,默认值为0,范围为0~99,numeric类型。为0时将完全禁用预刷新行为。5.6.6引入的参数,规则如下
      • 当innodb_max_dirty_pages_pct_lwm设置为0时,和5.6.6版本之前的版本的行为类似,如果脏页比例大于innodb_max_dirty_pages_pct时,pct_for_dirty被内部设置为100,开始刷新脏页
      • 不为0时,但脏页比例小于innodb_max_dirty_pages_pct_lwm,则pct_for_dirty值被内部设置为0,不刷新脏页
      • 这个参数不为0时,但脏页比大于innodb_max_dirty_pages_pct_lwm,pct_for_dirty值被内部设置为(dirty_pct * 100)/( innodb_max_dirty_pages_pct+1)
    • 另外,脏页的刷新还受控于innodb_adaptive_flushing参数(该参数默认为ON,innodb将根据函数buf_flush_get_desired_flush_rate返回的重做日志产生的速度来确定要刷新的脏的缓存页数量,在合并插入缓存时,Innodb每次合并的页数是0.05*innodb_io_capacity个)和innodb_adaptive_flushing_lwm参数(默认为10,区间为[0, 70] ,5.6.x开始的参数,该值表示redo log的一个最低容量限制百分比,默认为10,当没有达到这个值时,则不会page cleaner(刷新脏页),线程不会根据redo来判断是否刷页)

上一篇:innodb_locks_unsafe_for_binlog | 下一篇:innodb_sort_buffer_size