记录一次现网MySQL内存增长超限问题定位过程

本文记录了一次现网MySQL内存超出限制的问题定位过程。通过PMAP查看内存分配,发现大量64M内存块未释放,疑似内存泄露。由于现网环境限制,无法使用某些内存定位工具,提出了在实验室复现问题、升级到MySQL 5.7等解决方案。此外,还探讨了不同操作系统对内存释放的处理差异,并分享了个人技术成长经历和面试感悟。
摘要由CSDN通过智能技术生成

至于原因,记得是在某篇文章里面提到过。不太记得出处在哪了,等我找到了再更新。

但这个参数,我是不打算改了。因为是现网,还有这是客户系统,就算有再充分的原因,没有严重问题也不可能接受你的建议修改的。

用PMAP查看内存具体分配


除了Buffer pool预先分配的内存230G是在已知的情况下。

内存PMAP统计信息显示其中有1659个64M=104G的内存块分配。

问题应该就是出在这里,到底是什么导致很多不同的64M的内存块分配,而且分配后还没有释放?

下一步对策


从前面的分析来看,没有任何一点能解释问题发生的根本原因。

我猜测问题有可能是内存泄露,也许是内存未释放。

那接下来,我们该怎么办呢?目前来看,我几乎没有办法。

内存问题的定位工具,由于现网无法使用。

其实还可以查询一下performance_schema关于内存的统计信息。

但可惜这个是5.7之后的版本才有的功能。现网5.6版本不支持。

最后的办法:


1)在实验室搭建一个和现网一样的环境(数据一样)。但没有流量数据,可能也难以复现问题。

2)升级到5.7,反正早晚都要升级的。升级后,关于内存这一块就可以查看更多的信息了。

注:关于内存不释放我也怀疑过有可能是OS的问题,比如说solaris系统就是如此(

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值