mysql数据库内存告警_云数据库MySQL实例的内存使用率告警

问题描述

在RDS管理控制台的报警页面,MySQL实例出现内存使用率告警。

问题原因

监控指标设置不合理。

实例内存使用出现异常。

解决方案

检查实例的内存使用情况

登录该实例,执行如下SQL语句,检查当前实例的内存使用情况。

show variables

where variable_name in ('innodb_buffer_pool_size',

'innodb_log_buffer_size',

'innodb_additional_mem_pool_size',

'key_buffer_size',

'query_cache_size');

系统返回类似如下,本文以内存规格为240MB的RDS实例为例。有关参数的说明请参考MySQL 实际内存分配情况介绍。

+---------------------------------+-----------------+

| Variable_name                   | Value           |

+---------------------------------+-----------------+

| innodb_additional_mem_pool_size | 2097152         |

| innodb_buffer_pool_size         | 67108864        |

| innodb_log_buffer_size          | 1048576         |

| key_buffer_size                 | 16777216        |

| query_cache_size                | 0               |

+---------------------------------+-----------------+

共返回 5 行记录,花费 342.74 ms.

监控指标设置不合理

检查innodb_buffer_pool_size参数,确认该参数值当前的大小。大部分内存占用告警,都是因为实例的缓冲池增长导致,而缓冲池的增长是正常的。所以这类报警属于监控指标设置不合理造成的误报。

云数据库 RDS MySQL 版的缓冲池默认使用实例内存规格的80%,在实例使用过程中势必会造成缓冲池内存占比的增加。当内存使用超过80%出现告警,且确认为缓冲池内存占用时,建议将监控指标设置为90%。有关监控指标的设置可参考配置报警规则。

b437e0c0aee8c866cdcbca3c105bade4.png

内存使用出现异常

当出现内存使用率超过90%的告警时,一般考虑如下两方面。

确认是否存在Session过多的情况,如果空闲Session过多,需要评估空闲Session数量设置的是否合理。如何查看Session可参考MySQL官方文档。

确认是否单个Session占用过多的私有内存,主要排查创建临时表、sort或join等操作,这类操作会占用较多私有内存。

适用于

云数据库 RDS MySQL 版

如果您的问题仍未解决,您可以在阿里云社区免费咨询,或提交工单联系阿里云技术支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值