mysql占用内存过高_MySQL内存消耗过高问题处理

本文分析了MySQL内存消耗过高的问题,包括会话级别和全局内存的消耗。通过调整MySQL参数如sort_buffer_size,降低swappiness值以减少swap使用,以及考虑启用O_DIRECT模式和memlock选项。同时,探讨了CPU NUMA架构对swap的影响及处理策略,提供了关闭NUMA特性和设置交叉内存分配的方法。
摘要由CSDN通过智能技术生成

1.环境说明

OS:RedHat 6.2 x86_64

DB:MySQL 5.6.16

服务器:Vmware ESX

虚拟机资源: 2*6C,32G Mem,6G swap

2.问题现象

MySQL内存持续增加,最高时物理内存消耗28-29g,导致swap使用率100%,进而造成内存不足,系统自动kill mysql进程。

OS的syslog日志如下:

79fe63f84b87744b698a50496f06e959.png

3.MySQL内存消耗过高分析与处理

MySQL的内存消耗分为:

1.会话级别的内存消耗:如sort_buffer_size等,每个会话都会开辟一个sort_buffer_size来进行排序操作

2.全局的内存消耗:例如:innodb_buffer_pool_size等,全局共享的内存段

其中170的数据库的全局内存消耗很稳定,没有出现增加的现象,那么会话级的内存消耗可能是一个主因。

关于会话级的内存消耗解释如下:

read_buffer_size, sort_buffer_size, read_rnd_buffer_size, tmp_table_size这些参数在需要的时候才分配,操作后释放。

这些会话级的内存,不管使用多少都分配该size的值,即使实际

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值