MySQL 8.0中InnoDB buffer pool size进度更透明

0    43    1

Tags:

👉 本文共约1195个字,系统预计阅读时间或需5分钟。

从MySQL 5.7开始,支持在线动态调整 innodb buffer pool,并为此新增了一个状态变量 Innodb_buffer_pool_resize_status,可以通过观察它了解调整buffer pool过程中的一些状态,例如 Resizing also other hash tables.Completed resizing buffer pool at 230131 15:57:03.

从8.0.31开始,针对innodb buffer pool在线动态resize特性,新增了下面两个状态变量,可以更方便透明观察resize的进度:

状态变量解释
Innodb_buffer_pool_resize_status_codebuffer pool resize状态码,共有以下几种不同值: - 0: No Resize operation in progress - 1: Starting Resize - 2: Disabling AHI (Adaptive Hash Index) - 3: Withdrawing Blocks,清除/降低buffer pool pages(主要针对buffer pool缩小的情况) - 4: Acquiring Global Lock - 5: Resizing Pool - 6: Resizing Hash - 7: Resizing Failed
Innodb_buffer_pool_resize_status_progress报告当前resize的进度,用百分比进度条方式展示,数值范围从0-100

我们可以通过 Innodb_buffer_pool_resize_status_code 报告的状态码,了解当前的状态,以及是否出现报错等情况。

状态变量 Innodb_buffer_pool_resize_status_progress 可以实时查看当前resize的百分比进度,当有多个buffer pool instance时,每完成一个instance resize,该值就会更新一次。每当 Innodb_buffer_pool_resize_status_code 状态码变化一次,则 progress 的进度百分比会被重置为0,重新开始。当整个buffer pool都resize完成后,最终显示100。

接下来,我们找个正在跑sysbench压测中的实例,对其在线调整buffer pool看看这几个状态变量分别是怎样的。压测期间,在另一个窗口跑下面的命令观察:

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!

此外,还可以从日志文件中查看详细过程:

参考

标签:

头像

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部
返回顶部