mysql-5.6.16的内存泄漏问题

一、背景

有一台物理机上一个版本为5.6.16的从库出现了内存的增高,观测其日志可以发现,这台数据库已经oom很多次了,并且stop slave的时候会卡住非常长的时间才能停止

二、根本原因

上述的现象可以看到是一个明显的内存泄漏现象,那么这种就是bug了,可以到mysql的bug网站进行搜索,可以明确的看到这个bug很符合我们当前的现象,这个bug实在5.6.25修复的,当然也可以结合其他一些bug1,bug2,bug3来分析原因

三、现状分析及规避

根据bug的描述,我们先分析下实例本身的问题

1.参数现状

# 可以看到我们的master_info_repository,relay_log_info_repository比较符合bug中的描述
show variables like '%master_info_repository%';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| master_info_repository | TABLE |
+------------------------+-------+
1 row in set (0.00 sec)

show variables like '%relay_log_info_repository%';
+---------------------------+-------+
| Variable_name             | Value |
+---------------------------+-------+
| relay_log_info_repository | TABLE |
+---------------------------+-------+
1 row in set (0.00 sec)

show variables like '%parallel_workers%';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| slave_parallel_workers | 0     |
+------------------------+-------+
1 row in set (0.00 sec)

2.内存现状

每天的内存都会增加1-2G

3.调整参数

stop slave;
set global master_info_repository="FILE";
set global relay_log_info_repository="FILE";
# 如果是0则不用处理
set global slave_parallel_workers=0;
start slave;

4.结果

观测了两天,从目前结果来看,修改完参数之后内存没有增长,已经确定是命中了bug,修改参数能规避这个问题,当然,更好的解决方式还是升级版本

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值