刷脏页带来的数据库抖动怎么优化?

MySQL抖动优化

在公司上班的时候经常是上班了一看听云日志有块小的数据库勃起然后找到运维查看MySQL的状态,因为不是专业的DBA所以给回的数据查考价值有限。后台查了些文档,MySQL的一些配置也会造成这种抖动或者勃起

redo log 刷脏页

redo log在一些地方可能叫redo log buffer 或者 log buffer,在翻查一些质料后知道了通常说的 redo log 其实是分两个部分的。

  • 内存中的 redo log buffer
  • 磁盘上的 redo log file

redo log buffer 会在一下情况刷脏页

  • 写满数据
  • 内存不够用

刷脏页一下的情况会对敏感型业务有影响

  • 淘汰的脏页个数过多
  • 日志写满,更新堵塞

刷脏页配置调优

  1. 我们可以用类似 fio的工具来检查磁盘的IOPS,然后设置 INNODB_IO_CAPACITY参数,建议保存在75%。

  2. InnoDB刷脏页有个连坐机制,就是当flush掉一个脏页的时候会带上相邻内存的脏页一并刷新,它的目的是减少机械硬盘时代的随机IO,但是如果是用的SSD可以关闭这个机制 innodb_flush_neighbors 设置为 0 。

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!

请我喝杯咖啡吧~