14.3.3.2 Configuring the Rate of InnoDB Buffer Pool Flushing 配置 InnoDB Buffer Pool 刷新频率

来源:互联网 发布:软件免责条款 编辑:程序博客网 时间:2024/05/22 00:17

14.3.3.2 Configuring the Rate of InnoDB Buffer Pool Flushing 配置 InnoDB Buffer Pool 刷新频率

InnoDB 执行某些后台任务,包括flush dirty pages(那些pages已经被修改了但是没有写入到database files)

从buffer pool.InnoDB flushes buffer pool 页如果当前脏的pages 的比例在buffer pool

超过了 innodb_max_dirty_pages_pct。 在MySQL 5.7.5,

InnoDB flushed buffer pool pages 如果 脏的pages的比例大于或等于innodb_max_dirty_pages_pct

InnoDB 使用一个算法来评估flush需要的速率,其目的是平滑的总体的性能通过确保buffer flush 活动

来保持缓冲池的干净。

flush自动调整的速率可以帮助避免突然下降的吞吐量, 当过多的buffer pool flush 限制了I/O的性能

InnoDB 使用它的log files 在一个循环方式,在重用log file的一部分之前,

InnoDB flushes 所有的dirty buffer pool pages 到磁盘,这些redo entries 是包含在log file这部分,

这一操作称为checkpoint. 如果负载是写密集的,它会产生大量的redo 信息,都被写入到log file.

如果所有的可用空间在log files 都被使用,一个checkpoint 发生,

导致一个临时的吞吐量下降。这种情况肯呢过发生 即使 innodb_max_dirty_pages_pct 没有被达到。

InnoDB 使用一个启发式算法来避免这样的情况,通过测量 缓冲池里的脏的pages的数量,

和redo生成的频率。 基于这些数据,InnoDB 决定每秒多少脏的pages 从buffer pool 刷新到磁盘

内部基准测试还表明,该算法不仅保持吞吐量随着时间的推移,也可以显著的改善整体的吞吐量

0 0