至于原因,记得是在某篇文章里面提到过。不太记得出处在哪了,等我找到了再更新。
但这个参数,我是不打算改了。因为是现网,还有这是客户系统,就算有再充分的原因,没有严重问题也不可能接受你的建议修改的。
用PMAP查看内存具体分配
除了Buffer pool预先分配的内存230G是在已知的情况下。
内存PMAP统计信息显示其中有1659个64M=104G的内存块分配。
问题应该就是出在这里,到底是什么导致很多不同的64M的内存块分配,而且分配后还没有释放?
下一步对策
从前面的分析来看,没有任何一点能解释问题发生的根本原因。
我猜测问题有可能是内存泄露,也许是内存未释放。
那接下来,我们该怎么办呢?目前来看,我几乎没有办法。
内存问题的定位工具,由于现网无法使用。
其实还可以查询一下performance_schema关于内存的统计信息。
但可惜这个是5.7之后的版本才有的功能。现网5.6版本不支持。
最后的办法:
1)在实验室搭建一个和现网一样的环境(数据一样)。但没有流量数据,可能也难以复现问题。
2)升级到5.7,反正早晚都要升级的。升级后,关于内存这一块就可以查看更多的信息了。
注:关于内存不释放我也怀疑过有可能是OS的问题,比如说solaris系统就是如此(