官方文档地址:https://help.aliyun.com/product/26090.html?spm=5176.7920929.1290474.7.2c6f4f7bACaToi

官方文档地址:https://files.cnblogs.com/files/sanduzxcvbnm/RDS_MySQL_数据库_cn_zh-CN.pdf

内存的规格会决定该实例的性能。

您可以根据业务情况调整RDS MySQL实例的innodb_buffer_pool_size大小,以便提升实例性能。

背景信息

RDS MySQL实例的内存主要用于以下几个方面:

  • mysqld服务。主要是缓存(InnoDB Buffer Pool)占用内存,InnoDB Buffer Pool大小由参数innodb_buffer_pool_size指定。
  • RDS相关管理服务。
  • 底层操作系统。

本地SSD盘

实例规格内存 = mysqld服务内存

对于RDS MySQL本地SSD盘实例,实例规格内存即为mysqld服务可占用内存,主要包括InnoDB Buffer Pool占用内存和MySQL其他服务占用内存(如会话连接占用内存)。本地SSD盘实例会在物理机内通过资源隔离实现多实例部署,故RDS相关管理服务和底层操作系统占用的内存没有计算在RDS实例规格的内存中。

云盘(SSD云盘或ESSD云盘)

实例规格内存 = mysqld服务内存 + RDS相关管理服务内存 + 底层操作系统内存

对于RDS MySQL云盘实例,实例规格内存包含上述3个部分,因为云盘实例是独立部署于不同的ECS实例中,因此需要划分对应的内存用于运行RDS相关管理服务和底层操作系统。

底层操作系统一般会占用500~700MB内存,RDS相关管理服务约占用500MB内存。

InnoDB Buffer Pool设置

RDS实例可以通过参数innodb_buffer_pool_size来调整InnoDB Buffer Pool的大小,当前仅支持通过公式进行修改。公式如下:

{DBInstanceClassMemory*X/Y}

示例

{DBInstanceClassMemory*7/10}

说明

  • DBInstanceClassMemory为RDS实例规格内存系统变量。
  • X、Y为分子和分母。
  • 可调整范围为:[128MB, DBInstanceClassMemory*8/10 ],即最小调整到128MB,最大调整到RDS实例规格内存的80%。

RDS实例默认InnoDB Buffer Pool大小如下:

  • 如果RDS云盘实例规格内存<16GB,默认InnoDB Buffer Pool = (RDS实例规格内存 - RDS相关管理服务内存 - 底层操作系统内存)* 0.7。
  • 如果RDS云盘实例规格内存 ≥ 16GB,或RDS实例为本地SSD盘,默认InnoDB Buffer Pool = RDS实例规格内存 * 0.7。

为了保障实例稳定性,对于1核1GB、1核2GB等小规格实例,innodb_buffer_pool_size默认设置为256MB。

InnoDB Buffer Pool大小始终为innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances的倍数,如果不为倍数关系时,会自动修改为倍数关系。例如innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances=1GB,如果将innodb_buffer_pool_size设置为1.5GB,系统会自动修改innodb_buffer_pool_size为2GB。

警告 修改 innodb_buffer_pool_size会重启实例,请谨慎操作。

RDS MySQL内存管理的更多相关文章

  1. MySQL内存管理机制浅析

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. GreatSQL是MySQL的国产分支版本,使用上与MySQL一致. 目录 一.placement new的定义 二.pl ...

  2. 利用 gperftools 对nginx mysql 内存管理 性能优化

    利用 gperftools 对nginx 与 mysql  进行 内存管理  性能优化 降低负载. Gperftools 是由谷歌开发.官方对gperftools 的介绍为: These tools ...

  3. mysql内存管理

    1 内存管理结构 mysql有自己的内存申请和释放机制 mysql层有mem_root innodb层有mem_heap,mem_pool,buf_pool 它们的结构图如下 2 mem_root m ...

  4. 使用jemalloc优化nginx和mysql内存管理

    预先安装autoconf 和 make yum -y install autoconf make jemalloc的安装jiemalloc 开源项目网站 http://www.canonware.co ...

  5. innodb源码解析 - mem0_.c - 基本内存管理

    The basic element of the memory management is called a memoryheap. A memory heap is conceptually ast ...

  6. jemalloc优化MySQL、Nginx内存管理

    上一篇文章<TCMalloc优化MySQL.Nginx.Redis内存管理>,下面来看下jemalloc jemalloc源于Jason Evans 2006年在BSDcan confer ...

  7. TCMalloc优化MySQL、Nginx、Redis内存管理

    TCMalloc(Thread-Caching Malloc)与标准glibc库的malloc实现一样的功能,但是TCMalloc在效率和速度效率都比标准malloc高很多.TCMalloc是 goo ...

  8. MySQL系列:innodb源代码分析之内存管理

    在innodb中实现了自己的内存池系统和内存堆分配系统,在innodb的内存管理系统中,大致分为三个部分:基础的内存块分配管理.内存伙伴分配器和内存堆分配器.innodb定义和实现内存池的主要目的是提 ...

  9. MySQL InnoDB技术内幕:内存管理、事务和锁

    前面有多篇文章介绍过MySQL InnoDB的相关知识,今天我们要更深入一些,看看它们的内部原理和机制是如何实现的. 一.内存管理 我们知道,MySQl是一个存储系统,数据最后都写在磁盘上.我们以前也 ...

随机推荐

  1. 解决linuxdeployqt报错——系统版本过新的问题

    参考文章:https://icode.best/i/45016240865860 目前测试有效 大概你会跳转到这个议题 issues#340 显示这样类似的报错 linuxdeployqt 5 (co ...

  2. Cube Stacking 来源:洛谷

    题目 题目oj(洛谷) Farmer John and Betsy are playing a game with N (1 <= N <= 30,000)identical cubes ...

  3. 多表查询_子查询概述和多表查询_子查询情况1&情况2&情况3

    子查询 概念:查询中嵌套查询,称嵌套查询为子查询 -- 查询工资最高的员工信息 -- 1.查询最高的工资是多少 9000 select max(salary) from emp; -- 查询员工信息, ...

  4. HashTable集合和练习题_计算一个字符串中每一个字符出现的次数

    HashTable集合 /** * java.util.Hashtable<K,V>集合 implement Map<K,V>接口 * Hashtable:底层也是一个哈希表, ...

  5. PHP生成器yield使用示例

    <?php function getLines($file) { $f = fopen($file, 'r'); try { while ($line = fgets($f)) { yield ...

  6. 自动挂载mount

    # 自动挂载mount(/etc/fstab) /dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0 # 第一列:/dev/fd0 挂载源 ...

  7. linux-0.11分析:boot文件 bootsect.s 第一篇随笔

    boot文件 bootsect.s 第一篇随笔 参考 [github这个博主的][ https://github.com/sunym1993/flash-linux0.11-talk ] bootse ...

  8. 构建数据湖上低延迟数据 Pipeline 的实践

    T 摘要 · 云原生与数据湖是当今大数据领域最热的 2 个话题,本文着重从为什么传统数仓 无法满足业务需求? 为何需要建设数据湖?数据湖整体技术架构.Apache Hudi 存储模式与视图.如何解决冷 ...

  9. Redis 05 集合

    参考源 https://www.bilibili.com/video/BV1S54y1R7SB?spm_id_from=333.999.0.0 版本 本文章基于 Redis 6.2.6 Set 中的值 ...

  10. Markdown 常用语法精讲

    - #### 标题 (`# 跟标题名称一定要留空格`)> > # 一级标题> ## 二级标题> ### 三级标题> #### 四级标题> ##### 五级标题> ...