【MySQL】记一次MySQL内存利用率高的问题解决

本文描述了一次在腾讯云2C4G的MySQL实例中遇到的内存利用率持续高位的问题。通过检查连接数和表高速缓存设置,发现表打开缓存存在压力。调整table_open_cache参数至2048后,重启MySQL,内存利用率降低至20%,问题得到解决。建议调整table_open_cache值以保持Open_tables与table_open_cache之间的适当比例,以确保系统稳定运行。
摘要由CSDN通过智能技术生成

背景:生产环境,腾讯云2C4G MySQL实例,内存利用率一直横在79%+,稍微动一下就会超过80%触发报警策略。

问题排查:

1. 查看连接数,没发现有长时间未释放的长链接

show full processlist;

2. 查看表高速缓存设置

SHOW VARIABLES LIKE '%table_open_cache%';

 查看表实际缓存状态

SHOW GLOBAL STATUS LIKE 'Open%tables';

 table_open_cache 与 Open_tables 值相等,但是Opend_tables值很大。说明MySQL正在释放缓存的表以容纳新的表,这个过程消耗资源。所以需要加大 table_open_cache的值,我们的MySQL实例是4G内存,这里我们改成2048。

问题解决:

改完之后,重启MySQL,内存利用率降低到20%左右,问题解决。

内存占用也从原来的3200M降低到了800M。

备注:

table_open_cache合理值的建议:

Open_tables / Opened_tables >= 0.85
Open_tables / table_open_cache <= 0.95

实际操作过程中,可以把table_open_cache值设置得比Open_tables大一些,然后慢慢增加,逐步调试。

参考:https://www.cnblogs.com/fjping0606/p/6531292.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值