美文网首页
12 | 为什么我的MySQL会“抖”一下?

12 | 为什么我的MySQL会“抖”一下?

作者: 那年_匆匆 | 来源:发表于2019-07-14 23:26 被阅读0次

    当内存数据页跟磁盘数据页内容不一致的时候,我们称这个内存页为“脏页”。内存数据写入到磁盘后,内存和磁盘上的数据页的内容就一致了,称为“干净页”

    回到文章开头的问题,你不难想象,平时执行很快的更新操作,其实就是在写内存和日志,而 MySQL 偶尔“抖”一下的那个瞬间,可能就是在刷脏页(flush)。

    问题:一个内存配置为 128GB、innodb_io_capacity 设置为 20000 的大规格实例,正常会建议你将 redo log 设置成 4 个 1GB 的文件。但如果你在配置的时候不慎将 redo log 设置成了 1 个 100M 的文件,会发生什么情况呢?又为什么会出现这样的情况呢?(如果一个高配的机器,redo log 设置太小,会发生什么情况。)

    每次事务提交都要写 redo log,如果设置太小,很快就会被写满,也就是下面这个图的状态,这个“环”将很快被写满,write pos 一直追着 CP。

    这时候系统不得不停止所有更新,去推进 checkpoint。

    这时,你看到的现象就是:磁盘压力很小,但是数据库出现间歇性的性能下跌。

    感谢极客时间:https://time.geekbang.org/column/article/71806

    相关文章

      网友评论

          本文标题:12 | 为什么我的MySQL会“抖”一下?

          本文链接:https://www.haomeiwen.com/subject/gvjwkctx.html