3.4, Dirty Page too much Checkpoint
Dirty Page too much Checkpoint是在Master Thread 线程中每秒一次的频率实现的。
Dirty Page too much 意味着buffer pool中的脏页过多,执行checkpoint脏页刷入磁盘,保证buffer pool中有足够的可用页面。
Dirty Page 由innodb_max_dirty_pages_pct配置,innodb_max_dirty_pages_pct的默认值在innodb 1.0之前是90%,之后是75%。
总结:
MySQL数据库(当然其他关系数据也有类似的机制),为了提高事物操作的效率,在事物提交之后并不会立即将修改后的数据写入磁盘,而是通过日志先行(write log ahead)的方式保证事物的持久性。
对于将事物修改的数据页面,也即脏页,通过异步的方式刷新到磁盘中,checkpoint正是实现这种异步刷新脏页到磁盘的实施者。
不同的情况下,会发生不同的checkpoint,将不同数量的脏页刷新到磁盘,从而到达管理内存(第1,2,4种checkpoint)和redo log可用空间(第3种checkpoint)的目的。