我是靠谱客的博主 大力雨,最近开发中收集的这篇文章主要介绍MySQL服务器发生OOM的案例分析,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

【问题】

有一台MySQL5.6.21的服务器发生OOM,分析下来与多种因素有关

【分析过程】

1服务器物理内存相对热点数据文件偏小,62G物理内存+8G的SWAP,数据文件大小约550G

 触发OOM是binlog备份的cp进程

2、mysqld实际使用物理内存远大于innodb_buffer_pool_size设置,与我们之前分析的内存分配管理模块有关,建议更换为jemalloc

可以参考我之前的文章,MySQL5.7.18(ptmalloc VS tcmalloc VS jemalloc)性能测试

<1>这个MySQL实例配置了45G的buffer pool,发生OOM时,mysqld进程实际使用到约61G

 

<2>另一台相同配置的服务器,配了32G的buffer pool,MySQL物理内存用到了57G,SWAP已使用5G

3、NUMA节点内存分配不均导致了SWAP空间大量使用,下图是这台服务器mysqld进程在各NUMA节点的内存使用情况,建议开启numa interleave访问

 

【优化方案】

1、 升级内存更大的服务器

2、 建议更换mysqld进程的内存分配管理模块为jemalloc

3、 建议开启mysql进程的numa  interleave访问

 

开启numa  interleave的步骤,可以参考文章

NUMA导致的MySQL服务器SWAP问题分析与解决方案

 

转载于:https://www.cnblogs.com/wangdong/p/9850802.html

最后

以上就是大力雨为你收集整理的MySQL服务器发生OOM的案例分析的全部内容,希望文章能够帮你解决MySQL服务器发生OOM的案例分析所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部