mysql控制innodb buffer pool

buffer pool的刷新是由page_cleaners线程操作的,这个线程的数量由innodb_page_cleaner控制数量,innodb_max_dirty_pages_pct_lwm 这个参数是脏页的最低水位线,达到这个值后,会启动刷新,默认0,不会启动提前的刷新。innodb_max_dirty_pages_pct_lwm这个参数就是来提前刷新脏页用的。

mysql的主线程会在后台进行脏页的刷新,如果在buffer pool中的脏页超过了innodb_max_dirty_pages_pct的比例后,innodb会聚合刷新.
innodb使用基于redo生成的速度和当前刷新频率的算法去评估刷新率, 自动调整刷新频率能帮助避免当大量的刷新限制了对于普通读写操作的io能力而导致的吞吐的突然下降。
自动调整频率可以通过innodb_adaptive_flushing配置关闭掉,默认是开启的状态。

innodb_flush_neighbors 这个参数是刷脏页的时候也把相邻的页刷出去,在hdd的时候有用,在ssd的情况下不用设置。
innodb_lru_scan_depth这个参数指定的是针对每一个buffer pool size page cleaner线程刷多远的脏页,每秒执行一次,在写入负载高的情况下,考虑减小这个参数的设置,尤其是针对大的buffer pool, 这个参数的调整方法是从小到大调整,让free 的页最小为目标。

innodb_flushing_avg_loops定义InnoDB保留先前计算的刷新状态快照的迭代次数,控制自适应刷新对前台工作负载变化的响应速度。较高的innodb_flushing_avg_loops值表示InnoDB将先前计算的快照保留的时间更长,因此自适应刷新的响应速度更慢。设置高值时,重要的是要确保重做日志利用率不达到75%(异步刷

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值