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

第一种是“redo log 写满了,要 flush 脏页”,这种情况是 InnoDB 要尽量避免的。
因为出现这种情况的时候,整个系统就不能再接受更新了,所有的更新都必须堵住。
如果你从监控上看,这时候更新数会跌为 0
第二种是“内存不够用了,要先将脏页写到磁盘”,这种情况其实是常态。InnoDB 用缓冲池(buffer pool)管理内存,缓冲池中的内存页有三种状态:
  第一种是,还没有使用的;
  第二种是,使用了并且是干净页;
  第三种是,使用了并且是脏页。

涉及两个参数:

io容量(默认是机械硬盘的值,如果是ssd要加大)

show variables 'innodb_io_capacity';

刷脏页连坐(默认是机械硬盘的设置为1,如果是ssd,最后设置为0)

show variables like 'innodb_flush_neighbors';

原文地址:https://www.cnblogs.com/lakeslove/p/12246820.html