RDS MySQL新增存储压缩功能,支持在存储层对用户数据(包含实际数据和系统日志)进行压缩存储,降低单位容量数据的存储成本。
功能简介
RDS MySQL存储压缩功能默认关闭,您可以根据实际需求开启压缩功能。开启压缩功能后,成本最高降低50%。在理想情况下,启用压缩后所能写入的数据量相比未启用前最高可提升至原来的2.5倍,例如,若实例存储空间大小为100 GB,开启压缩前可写入100 GB数据,开启后最高可以写入250 GB数据,具体可写入的数据量以实际为准。
RDS MySQL提供的存储压缩不仅适用于表中的实际数据(即数据空间),还涵盖了事务日志等其他类型的文件(即日志空间)。这意味着无论是日常操作产生的大量业务数据还是用于恢复和审计的日志信息,均可通过压缩节省磁盘空间,间接降低数据存储成本。
此外,开启存储压缩对实例性能几乎无影响,详见附录:存储压缩性能压力测试。
实现原理
RDS MySQL基于阿里巴巴自研智能透明压缩盘,搭载内嵌专用芯片,采用Zlib level (6)压缩级别同等的压缩算法,在物理磁盘层面实现对数据的实时压缩和解压缩。整个数据压缩和解压缩过程完全透明,对于用户应用无感知,避免复杂的应用适配工作。同时,透明压缩减少磁盘内部的数据搬移,有效降低磁盘固有的写放大,相较于传统的软压缩具有更高的效率,在保持性能影响可控的情况下,使单位容量数据的存储价格更低。
费用说明
开启存储压缩功能后,实例存储空间的计费规则和备份免费额度会发生变化,详见下文。
RDS实例存储空间的费用是对压缩后的物理数据进行计费的。
存储空间费用
开启压缩功能后,您可以写入更多数据,实例的单位存储空间的计费公式会发生变化,具体如下表。
存储压缩状态 | 存储空间计费公式 |
存储压缩状态 | 存储空间计费公式 |
未开启压缩 | 存储空间单价 * 存储空间容量 * 时长 |
开启压缩 | 1.25 * 存储空间单价 * 存储空间容量 * 时长 |
开启压缩功能,需要补差价,具体费用以控制台显示的配置费用为准。包年包月实例开启存储压缩的订单为升配订单,按量付费实例开启存储压缩的订单为变配订单,费用计算逻辑与变更配置保持一致。
备份免费额度
如果备份大小未超过免费额度,备份不收费。超出部分将额外按使用量计费,每小时备份费用 = ( 备份总大小 - 免费备份额度 ) x 备份单价。
常规备份与归档备份空间的计费说明,请参见常规备份、归档备份计费。常规备份与归档备份空间的单价,请前往RDS定价详情页查看。
存储类型 | 存储压缩状态 | 免费额度说明 | 说明 |
存储类型 | 存储压缩状态 | 免费额度说明 | 说明 |
通用云盘 | 未开启压缩 | 存储空间的200% | 在实例基本信息页使用量统计区域的备份使用量(即实际逻辑数据量)参数处查看。 |
开启压缩 | 存储空间的400% | ||
本地盘 | 未开启压缩 | 存储空间的50% | |
开启压缩 | 存储空间的100% |
数据库备份对象为压缩前的用户数据,而非压缩后的数据。
前提条件
RDS MySQL实例需满足以下条件:
版本:MySQL 8.0、5.7和5.6
系列:高可用系列、集群系列
实例规格:独享规格
存储类型:通用云盘、本地盘
存储空间:通用云盘1000~25000 GB ,本地盘1000~2400 GB
付费类型:包年包月、按量付费
使用限制
开启存储压缩后暂不支持关闭。
变更配置限制:
已开启存储压缩的独享型实例暂不支持变更为通用型。
已开启存储压缩的按量付费实例暂不支持转换为Serverless实例。
已开启存储压缩的本地盘实例不支持变更为云盘实例。
已开启存储压缩的实例不支持缩容存储空间至1000 GB以下。
已开启存储压缩的云盘实例不支持弹性升配。
只读实例:如需开启主实例的存储压缩功能,必须先开启只读实例的压缩功能。若主实例已开启存储压缩功能,则添加的只读实例将默认开启存储压缩功能。
备份与恢复:
数据库备份对象为压缩前的用户数据,而非压缩后的数据。
开启存储压缩后,备份数据不支持压缩,但通过实例备份恢复的实例将开启存储压缩功能。
实例回收站:若原实例已开启存储压缩功能,则通过实例回收站恢复的新实例也将开启存储压缩功能。
开启存储压缩
常见问题
Q:如何查看开启存储压缩功能后磁盘空间的监控指标?
A:在RDS控制台的监控与报警页面的标准监控页签,查看MySQL存储空间使用量(MB)、磁盘使用率(%)和MySQL物理存储空间使用量(MB)监控指标,以了解开启存储压缩功能后的磁盘空间使用情况,详情请参见查看监控信息。
附录:存储压缩性能压力测试
开启存储压缩后性能无损。本节将对比开启存储压缩前后的性能压测结果,验证其对系统性能的影响。
测试环境
应用服务器:阿里云ECS实例
RDS实例规格: 高可用系列独享规格(8核32 GB)
存储类型:通用云盘(开启IO突发)
存储空间:1000 GB
测试用例
使用的Sysbench内置用例如下:
oltp_read_only
oltp_read_write
oltp_write_only
测试命令参考:
sysbench oltp_write_only --mysql-host=xxxxxx --mysql-port=xxxxxx --mysql-user=xxxxxx --mysql-password=xxxxxx --tables=12 --table_size=4000000 --report-interval=1 --mysql-db=xxxxxx --rand-type=uniform --threads=1 --time=100 run
测试结果
12 GB小数据集下,开启压缩前后的性能测试结果如下:
并发
oltp_read_only
oltp_read_write
oltp_write_only
压缩前
压缩后
提升比例
压缩前
压缩后
提升比例
压缩前
压缩后
提升比例
并发
oltp_read_only
oltp_read_write
oltp_write_only
压缩前
压缩后
提升比例
压缩前
压缩后
提升比例
压缩前
压缩后
提升比例
1
6738.05
6534.69
-3%
4698.92
4620.96
-2%
3296.62
3151.49
-4%
8
49446.32
48834.86
-1%
30464.41
29389.79
-4%
17935.94
17371.47
-3%
16
79411.76
78639.35
-1%
47852.25
46415.14
-3%
27851.15
27257.97
-2%
32
100070.48
100314.49
0%
68408.67
68521.4
0%
40468.31
39921.37
-1%
64
113637.5
112402.16
-1%
82387.07
82751.29
0%
57843.89
57267.82
-1%
128
113871.22
112133.53
-2%
90124.61
89783.53
0%
69850.39
68477.59
-2%
256
108770.33
107001.19
-2%
88390.16
88001.18
0%
79330.67
79290.03
0%
512
104325.11
102797.59
-1%
85701.04
84782.41
-1%
77186.74
76983.98
0%
48 GB大数据集下,开启压缩前后的性能测试结果如下:
并发
oltp_read_only
oltp_read_write
oltp_write_only
压缩前
压缩后
提升比例
压缩前
压缩后
提升比例
压缩前
压缩后
提升比例
并发
oltp_read_only
oltp_read_write
oltp_write_only
压缩前
压缩后
提升比例
压缩前
压缩后
提升比例
压缩前
压缩后
提升比例
1
1945.09
1902.89
-2%
1700.04
1748.47
3%
1639.68
1722.17
5%
8
15934.45
15155.32
-5%
13049.89
13230.25
1%
12203.44
12518.78
3%
16
32436.32
31072.3
-4%
23130.89
23727.46
3%
20668.33
21196.57
3%
32
56018.88
55409.98
-1%
38182.38
39864.06
4%
30498.33
31356.85
3%
64
72838.53
73459.99
1%
51153.83
51888.1
1%
41560.41
42073.77
1%
128
80598.87
80788.34
0%
58943.65
58837.55
0%
50755.55
51526.62
2%
256
80500.57
80369.96
0%
58969.94
59222.25
0%
56874.2
56512.52
-1%
512
74476.62
74758.1
0%
58756.28
58347.02
-1%
58009.1
58565.04
1%
相关文档
- 本页导读 (1)
- 功能简介
- 实现原理
- 费用说明
- 存储空间费用
- 备份免费额度
- 前提条件
- 使用限制
- 开启存储压缩
- 常见问题
- 附录:存储压缩性能压力测试
- 相关文档