请选择 进入手机版 | 继续访问电脑版

爱分享吧

 找回密码
 立即注册11
搜索
热搜: 活动 交友 discuz
查看: 2077|回复: 0

InnoDB在什么情况下会触发检查点(checkpoint)?

[复制链接]

75

主题

75

帖子

1262

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1262
发表于 2019-9-2 16:20:33 | 显示全部楼层 |阅读模式
InnoDB在什么情况下会触发检查点(checkpoint)?
一、MySQL的checkpoint分类
1、sharp checkpoint(激烈检查点,要求尽快将所有脏页都刷到磁盘上,对I/O资源的占有优先级高)
2、fuzzy checkpoint(模糊检查点,会根据系统负载及脏页数量适当平衡,不要求立即将所有脏页写入磁盘,这事默认的方式)

二、触发时机
1、数据库正常关闭时,即innodb_fast_shutdown=0时需要执行sharp checkpoint
2、redo log发生切换时或者redo log快满的时候进行fuzzy checkpoint
3、master thread每隔1秒或10秒定期进行fuzzy checkpoint
4、innodb保证有足够多的空闲page,如果发现不足,需要移除lru list末尾的page,如果这些page是脏页,那么也需要fuzzy checkpoint
5、innodb buffer pool中脏页比超过innodb_max_dirty_pages_pct时也会触发fuzzy checkpoint

三、checkpoint相关参数及状态
1、innodb_fast_shutdown
2、innodb_io_capacity/innodb_io_capacity_max
3、innodb_lru_scan_depth
4、innodb_max_dirty_pages_pct/innodb_max_dirty_pages_pct_lwm
5、Innodb_buffer_pool_pages_dirty/Innodb_buffer_pool_pages_total
6、Innodb_buffer_pool_wait_free


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册11

本版积分规则

Archiver|手机版|小黑屋|爱分享吧

GMT+8, 2021-12-3 23:30 , Processed in 0.074021 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表