调整 Amazon RDS 存储的大小
Resize Amazon RDS storage
我们目前正在使用 200 GB 的数据库,并且 运行 超出了 space,因此我们想增加分配的存储空间。
我们正在使用通用 (SSD) 和 MySQL 5.5.53 数据库(没有多可用区部署)。
如果我转到 Amazon RDS 菜单并将分配的存储更改为更多(从 200 到 500),我会收到以下“警告”:
- 耗尽初始通用 (SSD) I/O 积分,导致更长的转换时间: 这是什么意思?
- 影响实例性能直到操作完成:这对我来说是最重要的问题。我可以在 0 停机时间的情况下调整实例大小吗?我的意思是,我不在乎查询在调整大小时工作是否有点慢,但我不想做的是停止我所有的生产网站,调整实例大小,并且再次打开它们(也就是停机时间)。
提前致谢。
技术答案是 AWS 在扩展存储时不支持停机。
但是,在现实世界中,您需要考虑当前数据库的繁忙程度以及 "slowdown" 将如何影响用户。考虑连接可能超时的可能性,或者在缩放事件期间站点可能比平时慢。
根据我的经验,RDS 存储大小调整一直很顺利,没有问题。但是,我们会选择一天中的最佳时间(最不忙)来实施此操作。我们还进行了备份程序。我们快照并启动备用服务器以手动切换以防万一。
首先根据 RDS FAQs,只要您只增加存储大小而不升级实例层,就根本不会停机。
Q: Will my DB instance remain available during scaling?
The storage capacity allocated to your DB Instance can be increased
while maintaining DB Instance availability.
其次,根据RDS documentation:
Baseline I/O performance for General Purpose SSD storage is 3 IOPS for
each GiB, which means that larger volumes have better performance....
Volumes below 1 TiB in size also have ability to burst to 3,000 IOPS
for extended periods of time (burst is not relevant for volumes above
1 TiB). Instance I/O credit balance determines burst performance.
我不能确定为什么,但我猜当 RDS 增加磁盘大小时,它可能会对数据进行碎片整理或重新排列数据块,这会导致沉重 I/O。如果您的服务器在调整大小期间使用量很大,它可能会完全消耗 I/O 积分并导致更少的 I/O 和更长的转换时间。但是,鉴于您从 200GB 开始,我想应该没问题。
最后,如果您非常担心停机或性能影响,我建议您使用 multi-az deployemnt。在维护 windows 或快照期间,会有短暂的 I/O 暂停几秒钟,这可以通过备用或只读副本来避免。
您可以预期性能会下降,但您应该在运行生产环境之前真正测试开发环境中的影响,这样您就不会措手不及。如果您在非高峰时段执行此操作,您应该没问题。
回答您的问题:
RDS 实例可能会爆发出一种叫做 I/O 的积分。 Burst 意味着其性能可以超越基准性能以满足需求高峰。如果你烧掉它们应该没什么大不了的,除非你的实例依赖它们(你可以从 rds 实例指标中确定这一点)。通读 I/O Credits and Burst Performance.
更改磁盘大小不会导致 rds 实例完全中断,只会导致性能下降,因此最好在非高峰时段进行,以尽可能减少影响。
我们目前正在使用 200 GB 的数据库,并且 运行 超出了 space,因此我们想增加分配的存储空间。
我们正在使用通用 (SSD) 和 MySQL 5.5.53 数据库(没有多可用区部署)。
如果我转到 Amazon RDS 菜单并将分配的存储更改为更多(从 200 到 500),我会收到以下“警告”:
- 耗尽初始通用 (SSD) I/O 积分,导致更长的转换时间: 这是什么意思?
- 影响实例性能直到操作完成:这对我来说是最重要的问题。我可以在 0 停机时间的情况下调整实例大小吗?我的意思是,我不在乎查询在调整大小时工作是否有点慢,但我不想做的是停止我所有的生产网站,调整实例大小,并且再次打开它们(也就是停机时间)。
提前致谢。
技术答案是 AWS 在扩展存储时不支持停机。
但是,在现实世界中,您需要考虑当前数据库的繁忙程度以及 "slowdown" 将如何影响用户。考虑连接可能超时的可能性,或者在缩放事件期间站点可能比平时慢。
根据我的经验,RDS 存储大小调整一直很顺利,没有问题。但是,我们会选择一天中的最佳时间(最不忙)来实施此操作。我们还进行了备份程序。我们快照并启动备用服务器以手动切换以防万一。
首先根据 RDS FAQs,只要您只增加存储大小而不升级实例层,就根本不会停机。
Q: Will my DB instance remain available during scaling?
The storage capacity allocated to your DB Instance can be increased while maintaining DB Instance availability.
其次,根据RDS documentation:
Baseline I/O performance for General Purpose SSD storage is 3 IOPS for each GiB, which means that larger volumes have better performance.... Volumes below 1 TiB in size also have ability to burst to 3,000 IOPS for extended periods of time (burst is not relevant for volumes above 1 TiB). Instance I/O credit balance determines burst performance.
我不能确定为什么,但我猜当 RDS 增加磁盘大小时,它可能会对数据进行碎片整理或重新排列数据块,这会导致沉重 I/O。如果您的服务器在调整大小期间使用量很大,它可能会完全消耗 I/O 积分并导致更少的 I/O 和更长的转换时间。但是,鉴于您从 200GB 开始,我想应该没问题。
最后,如果您非常担心停机或性能影响,我建议您使用 multi-az deployemnt。在维护 windows 或快照期间,会有短暂的 I/O 暂停几秒钟,这可以通过备用或只读副本来避免。
您可以预期性能会下降,但您应该在运行生产环境之前真正测试开发环境中的影响,这样您就不会措手不及。如果您在非高峰时段执行此操作,您应该没问题。
回答您的问题: RDS 实例可能会爆发出一种叫做 I/O 的积分。 Burst 意味着其性能可以超越基准性能以满足需求高峰。如果你烧掉它们应该没什么大不了的,除非你的实例依赖它们(你可以从 rds 实例指标中确定这一点)。通读 I/O Credits and Burst Performance.
更改磁盘大小不会导致 rds 实例完全中断,只会导致性能下降,因此最好在非高峰时段进行,以尽可能减少影响。