MySQL启停要十分钟?

news2024/12/24 7:50:02

一、问题背景

基础环境:

  • 主机类型:x3850 X6

  • 操作系统:DB:Red Hat Enterprise Linux 9.1 7.8

  • 存储:IBM存储,500GB

  • 内存:64 G

  • CPU型号:E7-4830 v3 @ 2.10GHz

  • CPU核数:32CORE

  • 数据库环境:8.0.27

问题现象:

测试环境数据库启停耗时较长。

说明:

测试环境有一套MySQL数据库给开发同事使用,某天开发小哥让协助启停一下数据库,发现MySQL启停的时候非常慢。

这场面见得还真不多,带着疑问,一探究竟。

二、一探究竟
 

MySQL启停加载热数据的相关参数:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

mysql> show variables like 'innodb_buffer_pool_dump%';

+-------------------------------------+-------+

|  Variable_name                       | Value |

+-------------------------------------+-------+

|innodb_buffer_pool_dump_at_shutdown | ON    |

| innodb_buffer_pool_dump_now         | OFF   |

|innodb_buffer_pool_dump_pct         | 25    |

+-------------------------------------+-------+

rows in set (0.00 sec) 

mysql> show variables like 'innodb_buffer_pool_load%';

+------------------------------------+-------+

| Variable_name                      |

+------------------------------------+-------+

| innodb_buffer_pool_load_abort      | OFF   |

|innodb_buffer_pool_load_at_startup | ON    |

| innodb_buffer_pool_load_now        | OFF   |

+------------------------------------+-------+

rows in set (0.01 sec)    

解释:

innodb_buffer_pool_dump_at_shutdown = 1  #在关闭时把热数据dump到本地磁盘。

innodb_buffer_pool_dump_now = 1  #采用手工方式把热数据dump到本地磁盘。

innodb_buffer_pool_dump_pct  #指定每个缓冲池最近使用的页面读取和转储的百分比。范围是1到100。默认值是25。例如,如果有4个缓冲池,每个缓冲池有100个page,并且innodb_buffer_pool_dump_pct设置为25,则dump每个缓冲池中最近使用的25个page。

innodb_buffer_pool_load_abort  #是否要中止缓冲池加载操作,默认是关闭的

innodb_buffer_pool_load_at_startup = 1  #在启动时把热数据加载到内存。

innodb_buffer_pool_load_now = 1  #采用手工方式把热数据加载到内存。

  

MySQL关闭时,会把内存中的热数据保存在磁盘里ib_buffer_pool文件中,此文件位于redo日志存放的路径innodb_log_group_home_dir数据目录下。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

mysql> show variables like '%buffer_pool%';

+-------------------------------------+----------------+

| Variable_name                       | Value          |

+-------------------------------------+----------------+

| innodb_buffer_pool_chunk_size       | 134217728      |

| innodb_buffer_pool_dump_at_shutdown | ON             |

| innodb_buffer_pool_dump_now         | OFF            |

| innodb_buffer_pool_dump_pct         | 25             |

| innodb_buffer_pool_filename         | ib_buffer_pool |  #此文件

| innodb_buffer_pool_in_core_file     | ON             |

| innodb_buffer_pool_instances        | 1              |

| innodb_buffer_pool_load_abort       | OFF            |

| innodb_buffer_pool_load_at_startup  | ON             |

| innodb_buffer_pool_load_now         | OFF            |

| innodb_buffer_pool_size             | 134217728      |

+-------------------------------------+----------------+

 

MySQL启动时,会自动加载热数据到Buffer_Pool缓冲池里。

1

2

3

4

5

6

7

8

查看加载时间

mysql> SHOW STATUS LIKE 'Innodb_buffer_pool_load_status';

+--------------------------------+--------------------------------------------------+

| Variable_name                  | Value                                            |

+--------------------------------+--------------------------------------------------+

| Innodb_buffer_pool_load_status | Buffer pool(s) load completed at 230227 15:32:13 |

+--------------------------------+--------------------------------------------------+

1 row in set (0.00 sec)

 

改成手动加载热数据

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

手动进行加载:

mysql> show variables like 'innodb_buffer_pool_dump%';

+-------------------------------------+-------+

| Variable_name                       | Value |

+-------------------------------------+-------+

| innodb_buffer_pool_dump_at_shutdown | ON    |

| innodb_buffer_pool_dump_now         | OFF   |

| innodb_buffer_pool_dump_pct         | 25    |

+-------------------------------------+-------+

rows in set (0.01 sec)

mysql> show variables like 'innodb_buffer_pool_load%';

+------------------------------------+-------+

| Variable_name                      | Value |

+------------------------------------+-------+

| innodb_buffer_pool_load_abort      | OFF   |

| innodb_buffer_pool_load_at_startup | OFF   |

| innodb_buffer_pool_load_now        | OFF   |

+------------------------------------+-------+

rows in set (0.01 sec)

查看执行状态:没有进行加载

mysql> SHOW STATUS LIKE 'Innodb_buffer_pool_load_status';

+--------------------------------+------------------------------------+

| Variable_name                  | Value                              |

+--------------------------------+------------------------------------+

| Innodb_buffer_pool_load_status | Loading of buffer pool not started |

+--------------------------------+------------------------------------+

1 row in set (0.00 sec)

  

手动进行加载:

1

2

3

4

5

6

7

8

9

10

mysql> set global innodb_buffer_pool_load_now=1;

Query OK, 0 rows affected (0.00 sec)

mysql> SHOW STATUS LIKE 'Innodb_buffer_pool_load_status';

+--------------------------------+--------------------------------------------------+

| Variable_name                  | Value                                            |

+--------------------------------+--------------------------------------------------+

| Innodb_buffer_pool_load_status | Buffer pool(s) load completed at 230227 15:59:58 |

+--------------------------------+--------------------------------------------------+

1 row in set (0.00 sec)

  

这样,始终保持热数据在内存中。

MySQL服务正常关闭,热数据会dump到内存。机器宕机或者kill mysql进程,热数据不会dump。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/645202.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

洞察丨挖掘游戏行为数据价值的 6 个新思路

现阶段,游戏赛道越来越难,主要表现在玩家对游戏质量的要求提高、游戏立项选择空间变小、游戏买量越来越贵且回本周期越来越长……与此同时,游戏出海势头依然强劲,难以突破重围。 可以说,几乎所有的游戏都在尽可能地朝着…

便利店小程序怎么做

便利店小程序是一种基于移动互联网的购物平台,它为用户提供了便捷的购物体验,可以满足用户的购物需求。下面是便利店小程序的主要功能介绍: 1. 商品展示:便利店小程序可以展示商家的商品信息,包括商品图片、价格、描述…

【什么是iMessage推送,im群发】苹果推iMessage是苹果公司为其设备用户提供的即时通讯服务

iMessage是苹果公司为其设备用户提供的即时通讯服务,拥有一系列强大的功能和特点。然而,至今为止,苹果并未提供官方的群发部署功能。iMessage主要被设计为点对点的通信工具,即用户可以与一个或多个人进行私密的聊天对话。以下是关…

酷克数据简丽荣:“模型热”将引发云计算与数据库行业大变革

随着LLM智能涌现的发生和API的爆发式发展,各行各业都在关注如何用好通用模型,如何调校好适合自己的行业应用。LLM最重要的输入是数据,最频繁的接口是数据库。模型应用的普及会对数据库产生哪些影响?大模型时代对企业的数据管理能力…

深度学习应用篇-元学习[13]:元学习概念、学习期、工作原理、模型分类等

【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化算法、卷积模型、序列模型、预训练模型、对抗神经网络等 专栏详细介绍:【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化…

通讯基站电源智能监控系统

通信基站又称无线基站,一般都安装在宽阔、偏远的地方,且分散,实现人工值守十分困难,成本高;另外局部内动力设备、蓄电池电源以及环境无法及时监视和控制,造成事故频发。然而蓄电池作为直流备用电源&#xf…

怎么把图片放大不改变清晰度,给大家介绍两个方法

时代的发展和进步,我们在使用手机、电脑等设备时,常常需要对图片进行放大操作。从功能上来说,图片放大可以让我们更好地观看和理解图片内容,同时也可以提高图像分辨率和清晰度,以满足不同的需求和场景首先,…

SQL-将数组打散regexp_replace/split/explode

目的:将数组(拒绝码refuse_codes)打散 原数据: 打散后数据col: – regexp_replace()替换函数 – split()函数是用于切分数据,也就是将一串字符串切割成了一个数组 – explode()函数是用于打散行的函数&am…

Ubuntu安装英伟达显卡驱动、Cuda和Cudnn

显卡驱动安装 1、下载对应型号显卡驱动 首先查看自己机器显卡型号 lspci | grep -i nvidia得到如下输出,其中GeForce GTX 1080就是型号 01:00.0 VGA compatible controller: NVIDIA Corporation GP104 [GeForce GTX 1080] (rev a1) 01:00.1 Audio device: NVIDI…

第14届蓝桥杯Scratch(中级)省赛真题解析2023.5.14

选择题 1. 已知下图角色一共有3个造型,则以下选项中,不能呈现下图中第三个造型效果的程序是(C) *选择题严禁使用程序验证,选择题不答或答错都不扣分 A. B. C. D. 2. 运行以下程序,循环执行4次后,x的值是(D)。 *选择题严禁使用程序验证,选择题不答或答错都不扣分

vue2之element-ui多个穿梭框实现 -Transfer

效果图 组件实现 -目录结构 Transfer.vue实现 <template><el-card :body-style"{ minHeight: 350px }"><el-inputv-show"filterable"v-model"filterName":placeholder"filterPlaceholder"clearableinput"han…

【Flutter】Flutter 如何切换页面

文章目录 一、简介二、Navigator 的使用三、实际示例&#xff1a;电影应用的页面切换四、完整代码五、 总结 一、简介 什么是页面切换呢&#xff1f;简单来说&#xff0c;页面切换就是在应用的不同界面之间进行跳转。例如&#xff0c;在一个电影应用中&#xff0c;从电影列表页…

java基础(多线程)-共享模型之管程

一、共享资源带来的问题 class ThreadProblem{static int counter 0;public static void testThread(){Thread t1 new Thread(()-> {for (int i 0; i < 5000; i) {counter;}},"t1");Thread t2 new Thread(()-> {for (int i 0; i < 5000; i) {count…

基于html+css的图展示126

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

苹果手机之间如何互传照片?批量传输操作指南

很多时候&#xff0c;我们用手机拍摄了好看的照片或者收藏了一些有趣的图片&#xff0c;想要分享给朋友&#xff0c;却不知道苹果手机之间如何互传照片&#xff1f;在分享大量照片的时候不清楚如何批量操作&#xff1f;别担心&#xff0c;下面小编就来分享一下苹果手机照片传输…

LeetCode279. 完全平方数 DP完全背包

https://leetcode.cn/problems/perfect-squares/ 题目描述 给你一个整数 n &#xff0c;返回 和为 n 的完全平方数的最少数量。 完全平方数 是一个整数&#xff0c;其值等于另一个整数的平方&#xff1b;换句话说&#xff0c;其值等于一个整数自乘的积。例如&#xff0c;1、4…

python类中常用的魔术方法

文章目录 构造方法__init__对象转字符__str__对象自定义大小比较First__lt__Second__le__Third__eq__ 构造方法__init__ 构造方法也是魔术方法的一种&#xff0c;此方法我在python对象与类中已经展示过了 注意&#xff1a;在方法中引用类成员变量一定要记得使用self关键字引用…

Elasticsearch:倒数排序融合 - Reciprocal rank fusion

警告&#xff1a;此功能处于技术预览阶段&#xff0c;可能会在未来版本中更改或删除。 Elastic 将尽最大努力修复任何问题&#xff0c;但技术预览中的功能不受官方 GA 功能的支持 SLA 约束。 倒数排序融合&#xff08;RRF&#xff09;是一种将具有不同相关性指标的多个结果集组…

蓝牙资讯|Canaly发布2023Q1全球可穿戴腕带设备报告

根据市场调查机构 Canalys 公布的最新报告&#xff0c;2023 年第 1 季度全球可穿戴腕带设备出货量为 4100 万台&#xff0c;同比下降 1%。 其中&#xff0c;本季度全球基础手环市场受到厂商和消费者更关注大屏设备影响&#xff0c;出货量为 750 万台&#xff0c;同比下降 24%…

Vue中如何进行拖拽与排序功能实现

Vue中如何进行拖拽与排序功能实现 在Web应用程序中&#xff0c;拖拽和排序功能是非常常见的。在Vue中&#xff0c;我们可以使用一些组件库来实现这个功能&#xff0c;例如sortablejs和vuedraggable。本文将介绍如何使用vuedraggable组件来实现Vue中的拖拽和排序功能。 什么是v…