
# RDS for MySQL内存使用率指标高的问题处理
如果实例的内存使用率较高，根据业务库类型，可采用以下几种处理方法：
**对于用户核心业务相关的库**
请扩容实例规格，具体请参见[手动变更实例的CPU和内存规格](https://support.huaweicloud.com/usermanual-rds-mysql/zh-cn_topic_scale_rds.html)。
**对于非用户核心业务相关的库**
查看本地计算机的内存使用率，如果使用率曲线持续平缓，则无需处理。
**对于用户核心业务相关但是数据库规格配置很高的库**
1. 在业务低峰期，将数据库参数"performance_schema"的值调整为"OFF"，对于RDS for MySQL 5.6及以下版本，需要重启数据库才能生效。
2. 通过智能DBA助手查看实例的内存使用情况，具体请参见[查看实例性能指标](https://support.huaweicloud.com/usermanual-rds-mysql/rds_08_0027.html)。
   如果实例的内存使用率仍持续保持较高：
   - 请扩容实例规格。
   
   - 调整数据库参数"innodb_buffer_pool_size"的值。参数建议值见[表1]，实际可修改的取值范围以RDS界面为准。
      表1不同内存规格对应的参数建议值 
     | 内存（GB） | 5.6建议值                       | 5.7建议值                       | 8.0建议值                       |
     |:---|:---|:---|:---|
     | 2      | 536,870,912 Byte（512 MB）     | 536,870,912 Byte（512 MB）     | 536,870,912 Byte（512 MB）     |
     | 4      | 1,073,741,824 Byte（1 GB）     | 1,073,741,824 Byte（1 GB）     | 1,073,741,824 Byte（1 GB）     |
     | 8      | 4,294,967,296 Byte（4 GB）     | 4,294,967,296 Byte（4 GB）     | 5,368,709,120 Byte（5 GB）     |
     | 16     | 8,589,934,592 Byte（8 GB）     | 8,589,934,592 Byte（8 GB）     | 9,663,676,416 Byte（9 GB）     |
     | 32     | 22,548,578,304 Byte（21 GB）   | 22,548,578,304 Byte（21 GB）   | 21,474,836,480 Byte（20 GB）   |
     | 64     | 47,244,640,256 Byte（44 GB）   | 47,244,640,256 Byte（44 GB）   | 47,244,640,256 Byte（44 GB）   |
     | 128    | 96,636,764,160 Byte（90 GB）   | 94,489,280,512 Byte（88 GB）   | 94,489,280,512 Byte（88 GB）   |
     | 192    | 146,028,888,064 Byte（136 GB） | 146,028,888,064 Byte（136 GB） | 146,028,888,064 Byte（136 GB） |
     | 256    | 193,273,528,320 Byte（180 GB） | 193,273,528,320 Byte（180 GB） | 193,273,528,320 Byte（180 GB） |
     | 384    | 298,500,227,072 Byte（278 GB） | 300,647,710,720 Byte（280 GB） | 300,647,710,720 Byte（280 GB） |
     | 512    | 412,316,860,416 Byte（384 GB） | 412,316,860,416 Byte（384 GB） | 412,316,860,416 Byte（384 GB） |
     | 768    | 618,475,290,624 Byte（576 GB） | 618,475,290,624 Byte（576 GB） | 618,475,290,624 Byte（576 GB） |
     | 1024   | 824,633,720,832 Byte（768 GB） | 824,633,720,832 Byte（768 GB） | 824,633,720,832 Byte（768 GB） |
        
     
     
#### 内存相关说明
- 请根据业务实际情况，调整参数"innodb_buffer_pool_size"的值。
- MySQL本身具有内存动态平衡机制，内存使用率在90%以下您可无需关注，同时建议内存使用率告警阈值设置不低于90%。
- 在业务运行中缓冲池内存会逐渐增大至"innodb_buffer_pool_size"的值，可通过监控指标"缓冲池利用率"查看缓冲池内存的增长趋势。
- RDS for MySQL的内存分配可划分为Engine层与Server层。
  - Engine层的内存包括InnoDB Buffer Pool、Log Buffer、Full Text Index Cache，其中InnoDB Buffer Pool为常驻内存，占用内存较大。 InnoDB缓冲池是一个内存区域，用于保存InnoDB表、索引和其他辅助缓冲区的缓存数据，可以通过参数"innodb_buffer_pool_size"定义缓冲池大小。
    
  
  - Server层的内存占用较高的包括Thread Cache、BinLog Cache、Sort Buffer、Read Buffer、Join Buffer等线程缓存，这类缓存非常驻内存，往往会随着连接关闭而释放。
  
  
  以上内存的分配导致RDS for MySQL实例运行时内存使用率在80%左右。
  
 
