MySQL:Innodb page clean 线程 (一): 基础篇

本文使用源码版本:Percona 5.7.14
本文约定
-协调工作线程:因为page clean线程的协调线程也会完成部分刷新工作,所以叫做协调工作线程。

一、page clean线程概念

Innodb中page clean线程将脏数据写入到磁盘,脏数据写盘后相应的redo就可以覆盖,然后达到redo循环使用的目的。在5.7中参数可以开启多个page clean线程服务于多个innodb buffer实例如下:

 

The innodb_page_cleaners default value was

changed from 1 to 4 in MySQL 5.7. If the number of page cleaner threads exceeds the number

of buffer pool instances, innodb_page_cleaners is automatically set to the same value as

innodb_buffer_pool_instances.

实际上在内部实现中如果page clean线程为4个那么包含一个协调工作线程和三个工作线程,这个协调工作线程也要完成一部分工作。在MySQL中我们可以通过语句查看到这些工作线程:

 

| 17 | 57982 | innodb/page_cleaner_thread | NULL | BACKGROUND | NULL | NULL |

| 18 | 57983 | innodb/page_cleaner_thread | NULL | BACKGROUND | NULL | NULL |

| 20 | 57985 | innodb/page_cleaner_thread | NULL | BACKGROUND | NULL | NULL |

| 19 | 57984 | innodb/page_cleaner_thread | NULL | BACKGROUND | NULL | NULL |

实际上在我浅析分析中发现,所有的工作线程都是不断轮询每一个和buffer instance对应的槽(slot),直到所有的buffer instance都已经进行了刷脏工作为止,并没有固定那个工作线程服务于那个buffer instance实例。

原文链接

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值