MySQL生产库内存异常增高怎么排查
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,这篇"MySQL生产库内存异常增高怎么排查"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这
千家信息网最后更新 2025年02月02日MySQL生产库内存异常增高怎么排查
这篇"MySQL生产库内存异常增高怎么排查"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"MySQL生产库内存异常增高怎么排查"文章吧。
修改performance_schema
因为公司生产环境使用的阿里云RDS,修改参数相对方便,performance_schema默认为0,此次修改为1。修改之后提交参数,数据库会进行重启,建议在业务低峰进行。
打开内存监控
登录MySQL数据库,执行如下SQL,打开内存监控。
update performance_schema.setup_instruments set enabled = 'yes' where name like 'memory%';
打开之后验证一下。
select * from performance_schema.setup_instruments where name like 'memory%innodb%' limit 5;
**注意:**该命令是在线打开内存统计,所以只会统计打开后新增的内存对象,打开前的内存对象不会统计,建议您打开后等待一段时间再执行后续步骤,便于找出内存使用高的线程。
查找内存消耗
统计事件消耗内存
select event_name, SUM_NUMBER_OF_BYTES_ALLOCfrom performance_schema.memory_summary_global_by_event_nameorder by SUM_NUMBER_OF_BYTES_ALLOC descLIMIT 10;+---------------------------------------+-------------------------------------+| event_name | SUM_NUMBER_OF_BYTES_ALLOC |+---------------------------------------+-------------------------------------+| memory/sql/Filesort_buffer::sort_keys | 763523904056 || memory/memory/HP_PTRS | 118017336096 || memory/sql/thd::main_mem_root | 114026214600 || memory/mysys/IO_CACHE | 59723548888 || memory/sql/QUICK_RANGE_SELECT::alloc | 14381459680 || memory/sql/test_quick_select | 12859304736 || memory/innodb/mem0mem | 7607681148 || memory/sql/String::value | 1405409537 || memory/sql/TABLE | 1117918354 || memory/innodb/btr0sea | 984013872 |+---------------------------------------+-------------------------------------+
可以看到内存消耗最高的event是Filesort_buffer,根据经验,这个应该是排序有关。
统计线程消耗内存
select thread_id, event_name, SUM_NUMBER_OF_BYTES_ALLOCfrom performance_schema.memory_summary_by_thread_by_event_nameorder by SUM_NUMBER_OF_BYTES_ALLOC desclimit 10;+---------------------+---------------------------------------+-------------------------------------+| thread_id | event_name | SUM_NUMBER_OF_BYTES_ALLOC |+---------------------+---------------------------------------+-------------------------------------+| 105 | memory/memory/HP_PTRS | 69680198792 || 183 | memory/sql/Filesort_buffer::sort_keys | 49210098808 || 154 | memory/sql/Filesort_buffer::sort_keys | 43304339072 || 217 | memory/sql/Filesort_buffer::sort_keys | 37752275360 || 2773 | memory/sql/Filesort_buffer::sort_keys | 31460644712 || 218 | memory/sql/Filesort_buffer::sort_keys | 31128994280 || 2331 | memory/sql/Filesort_buffer::sort_keys | 28763981248 || 106 | memory/memory/HP_PTRS | 27938197584 || 191 | memory/sql/Filesort_buffer::sort_keys | 27701610224 || 179 | memory/sql/Filesort_buffer::sort_keys | 25624723968 |+---------------------+---------------------------------------+-------------------------------------+
可以看到内存消耗多的线程都跟Filesort_buffer
相关。
定位具体SQL
根据前边我们查到的thread_id
去日志里查找对应的SQL,阿里云RDS审计日志相对还是比较强大的。我们直接根据thread_id直接检索。
我们在日志里看到大量这样的SQL,扫描行数在几千到几万不等。虽然每次查询时间并不长,大概在几十到几百毫秒,但是并发量很大。
以上就是关于"MySQL生产库内存异常增高怎么排查"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
内存
内容
消耗
统计
生产
库内
日志
线程
参数
对象
建议
数据
数据库
文章
时间
步骤
知识
篇文章
阿里
监控
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
燃烧的远征服务器开启时间
iaf和软件开发有关吗
绵阳商城软件开发服务至上
悉尼华人网络安全公司
日本ip服务器地址
威海市零壹网络技术有限公司
饭店点菜宝需要服务器吗
华为网络安全和信公司简介
河北大秦网络技术有限公司
以前的网络安全怎么样
企业网络安全年度报告
华为2288v5服务器首次启动
服务器bios设置降频
工程造价软件开发公司
软件开发的证件还没下来怎么办
北京智慧城市网络安全
服务器的审计日志怎么转出来
服务器和服务机是一个东西吗
ipv6服务器测试
临床试验数据库 药品审评
深圳电力应急网络技术开发展示
江苏润涛互联网络科技有限公司
软件开发部 产品规划
网络安全实用案例作品征集
学校国家网络安全周活动计划
网络安全工作发展规划
企业网络安全年度报告
成都苹果软件开发靠谱吗
计算机网络技术实验仿真
石家庄节能软件开发服务装饰