官方文档地址: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. MySQL原理

    MySQL基础: sql语句的执行过程: 连接器:登录连接sql数据库 分析器:分析解读sql语句,并检查是否符合SQL语法规则 优化器:对实现方式进行优化,比如在查询时决定使用哪个索引. 执行器:执 ...

  2. MLX90640 红外热成像仪测温模块简要介绍说明

    MLX90640 红外热成像仪测温模块简要介绍说明 (1) A 型和 B 型的区别 区别主要有以下几点 视场角不同: A 型为 110*75° , B 型为 55*35° ,通俗一点讲就是 A 型是广 ...

  3. MySQL 啥时候用表锁,啥时候用行锁?

    大家好,我是树哥. MySQL Innodb 的锁可以说是执行引擎的并发基础了,有了锁才能保证数据的一致性.众所周知,我们都知道 Innodb 有全局锁.表级锁.行级锁三种,但你知道什么时候会用表锁, ...

  4. docker + Umami + Postgresql 网站访问分析

    1 # docker + Umami + Postgresql 2 # 官方安装文档:https://umami.is/docs/install 3 # 一.创建数据库 4 # 1.创建用户 5 CR ...

  5. 5.26 NOI 模拟

    \(T1\)石子与HH与HHの取 博弈是不可能会的 \(c_i\)相等,比较显然的\(Nim,\)直接前缀异或求一下 \(a_i=1,\)区间长度对\(2\)取模 结论\(:\)黑色石子严格大于白色个 ...

  6. 【Java面试】怎么防止缓存击穿的问题?

    "怎么防止缓存击穿?" 这是很多一二线大厂面试的时候考察频率较高的问题. 在并发量较高的系统中,缓存可以提升数据查询的性能,还能缓解后端存储系统的并发压力.可谓是屡试不爽的利器. ...

  7. 使用 CSS 构建强大且酷炫的粒子动画

    粒子动画,顾名思义,就是页面上存在大量的粒子构建而成的动画.传统的粒子动画主要由 Canvas.WebGL 实现. 当然,不使用 HTML + CSS 的主要原因在于,粒子动画通常需要较多的粒子,而如 ...

  8. 总结-DSU ON TREE(树上启发式合并)

    考试遇到一道题: 有一棵n个点的有根树,每个点有一个颜色,每次询问给定一个点\(u\)和一个数\(k\),询问\(u\)子是多少个不同颜色节点的\(k\)级祖先.n<=500000. 显然对每一 ...

  9. JDK数组阻塞队列源码深入剖析

    JDK数组阻塞队列源码深入剖析 前言 在前面一篇文章从零开始自己动手写阻塞队列当中我们仔细介绍了阻塞队列提供给我们的功能,以及他的实现原理,并且基于谈到的内容我们自己实现了一个低配版的数组阻塞队列.在 ...

  10. DTSE Tech Talk丨第3期:解密数据隔离方案,让SaaS应用开发更轻松

    摘要:解读云上前沿技术,畅聊开发应用实践.专家团队授课,答疑解惑,助力开发者使用华为云开放能力进行应用构建.技术创新. 围绕当下许多企业青睐的SaaS应用开发,华为云DTSE技术布道师李良龙为大家带来 ...