云数据库 RDS-RDS for MariaDB数据库内存使用率过高怎么处理

时间:2024-01-03 14:40:59

RDS for MariaDB数据库内存使用率过高怎么处理

对于用户核心业务相关的库

请扩容实例规格。

对于非用户核心业务相关的库

查看本地计算机的内存使用率,如果使用率曲线持续平缓,则无需处理。

对于用户核心业务相关但是数据库规格配置很高的库

  1. 在业务低峰期,将数据库参数“performance_schema”的值调整为“OFF”,需要重启数据库才能生效。
  2. 通过智能DBA助手查看实例的内存使用情况,具体请参见查看性能指标
    如果实例的空间使用率仍持续保持较高:
    • 请扩容实例规格。
    • 调整数据库参数“innodb_buffer_pool_size”的值:
      • 数据库实例为2GB规格,参考值268,435,456 Byte(256MB)。
      • 数据库实例为4GB规格,参考值1,073,741,824 Byte(1GB)。
      • 数据库实例为8GB规格,参考值3,221,225,472 Byte(3GB)。
      • 数据库实例内存大于8GB规格,则无需调整。
  • 请根据业务实际情况,调整参数“innodb_buffer_pool_size”的值。
  • MariaDB本身具有内存动态平衡机制,90%以下您可无需关注。
  • RDS for MariaDB的内存分配可划分为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 MariaDB实例运行时内存使用率在80%左右。

support.huaweicloud.com/usermanual-rds/maria_03_0014.html