偶尔变慢的原因

  1. buffer pool 中的内存不足,需要刷新脏页到磁盘。
  2. redo log 记录的日志太多,即将到达 checkpoint,需要把以前的记录的脏页刷新到磁盘。

    InnoDB 刷脏页的控制策略

    首先要明确知道主机磁盘的 I/O 能力,这样 InnoDB 才知道需要全力刷 DB 的时候,速度能有多快。

    innodb_io_capacity

    这个参数会告诉你 InnoDB 的磁盘能力,一般设置会磁盘的 IOPS。
    磁盘的 IOPS 可以用 fio 这个工具来测试。

    注意事项

    平时多关注脏页比例,不要让它接近于75%。