阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

MySQL buffer pool中的三种链

362次阅读
没有评论

共计 2014 个字符,预计需要花费 6 分钟才能阅读完成。

三种 page、三种 list、LRU 控制调优

一、innodb buffer pool 中的三种页

1、free page:从未用过的页

2、clean page:干净的页,数据页的数据和磁盘一致

3、dirty page:脏页

SQL 执行需求:

1、找 free 页

2、刷新脏页

1、这个页不是热的数据页 (刷冷页)

2、这个页最早修改时间 (刷修改时间比较早的页,有可能是热页),方便日志文件的覆盖

3、覆盖冷的 clean 页

为了实现上述需求,innodb 用到链表技术 (每种链表一种作用,链的存在意义是为了遍历)。

二、innodb buffer pool 中的三种链

1、free list:将 free 数据页使用链表链起来

数据库刚启动的时候,lru 列表为空,此时需要用到的时候直接将 free 列表中的页删除,在 lru 列表中增加相应的页,维持页数守恒。

2、lru list:根据冷热将 clean、dirty 链起来

least recent used(最近最少使用)

1、“中点插入策略”

2、回写尽量回写冷的脏块

3、覆盖尽量覆盖冷的脏块

LRU 标准算法:

1)3/ 8 的 list 信息是作为 old list,这些信息是被驱逐的对象。

2)list 的中点就是我们所谓的 old list 头部和 new list 尾部的连接点,相当于一个界限。

3)新数据的读入首先会插入到 old list 的头部。

4)如果是 old list 的数据被访问到了,这个页信息就会变成 new list,变成 young page,就会将数据页信息移动到 new sublist 的头部。

5)在数据库的 buffer pool 里面,不管是 new sublist 还是 old sublist 的数据如果不会被访问到,最后都会被移动到 list 的尾部作为牺牲者。

3、flush list:将页按照最早脏时间链起来

flush list 中的也全都是脏页,刷盘即将 flush list 中的脏页刷新回磁盘中。

1、将非常旧的脏块回写到磁盘,按照新旧回写数据页;

2、因为是从最早脏的块开始刷,这样 logfile 里的对应的日志就可以被覆盖了。

MySQL buffer pool 中的三种链

Q:为什么需要这三种链?
A:

因为在 innodb 缓冲池中,内存管理如下:
1、需要经常找 free 空闲数据块:free list。
2、需要经常找冷的数据块:lru list(最近最少使用,根据冷热链起来)。
3、需要知道哪些数据块是比较早脏的,flush list:我们要覆盖旧的 logfile,就需要系统将这些 logfile 对应的脏块,即将 flush list 链上的脏页往磁盘上刷,(批量往磁盘写的时候,不如刷脏页)。

三、LRU 冷热区控制及调整

1、设置冷热分界线:innodb_old_blocks_pct

2、成为热块的所需时间:innodb_old_blocks_time

 

MySQL> show variables like ‘%old_blocks%’;
+————————+——-+
| Variable_name          | Value |
+————————+——-+
| innodb_old_blocks_pct  | 37    |
| innodb_old_blocks_time | 1000  |
+————————+——-+
2 rows in set (0.01 sec)

通过 innodb_old_blocks_pct 参数值得设定分为两部分:一是存放长时间未被访问的数据页,二是存放最近被访问的数据页。靠近 LRU 链表头部的数据页表示最近经常被访问,靠近尾部表示数据页长期未被访问,这两个部分的交汇处称为 midpoint,即 innodb_old_blocks_pct 这个点的设置。默认是 37%,最小是 5,最大是 95;如果内存比较大的话,可以将这个数值调低,通常会调成 20,也就是说 20% 的是冷数据块。目的是为了保护热区数据不被刷出内存。

通过 innodb_old_blocks_time 参数来控制成为热数据的所需时间,默认是 1000ms,也就是 1s,也就是数据在 1s 内没有被刷走,就调入热区。

3、LRU 冷热数据的监控

mysql> show engine innnodb status\G
……
Pages made young 0, not young 0
0.00 youngs/s, 0.00 non-youngs/s

1、数据页从冷到热,称为 young;not young 就是数据在没有成为热数据情况下就被刷走的量 (累计值)。

2、non-youngs/s,这个数值如果很高,一般情况下就是系统存在严重的全表扫描,自然意味着很高的物理读。

3、youngs/s,如果这个值相对较高,最好增加一个 innodb_old_blocks_time,降低 innodb_old_blocks_pct,保护热数据。

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计2014字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
8004435
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地 大家好,我是星哥,今天教大家在飞牛 NA...
【开源神器】微信公众号内容单篇、批量下载软件

【开源神器】微信公众号内容单篇、批量下载软件

【开源神器】微信公众号内容单篇、批量下载软件 大家好,我是星哥,很多人都希望能高效地保存微信公众号的文章,用于...
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...
亚马逊云崩完,微软云崩!当全球第二大云“摔了一跤”:Azure 宕机背后的配置风险与警示

亚马逊云崩完,微软云崩!当全球第二大云“摔了一跤”:Azure 宕机背后的配置风险与警示

亚马逊云崩完,微软云崩!当全球第二大云“摔了一跤”:Azure 宕机背后的配置风险与警示 首先来回顾一下 10...
星哥带你玩飞牛NAS-5:飞牛NAS中的Docker功能介绍

星哥带你玩飞牛NAS-5:飞牛NAS中的Docker功能介绍

星哥带你玩飞牛 NAS-5:飞牛 NAS 中的 Docker 功能介绍 大家好,我是星哥,今天给大家带来如何在...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸 前言 作为天天跟架构图、拓扑图死磕的...
240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

  240 元左右!五盘位 NAS 主机,7 代 U 硬解 4K 稳如狗,拓展性碾压同价位 在 NA...
零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face 免费服务器 +Docker 快速部署 HertzBeat 监控平台 ...
开发者福利:免费 .frii.site 子域名,一分钟申请即用

开发者福利:免费 .frii.site 子域名,一分钟申请即用

  开发者福利:免费 .frii.site 子域名,一分钟申请即用 前言 在学习 Web 开发、部署...
安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装 Black 群晖 DSM7.2 系统安装教程(在 Vmware 虚拟机中、实体机均可)! 前言 大家好,...