PolarDB-X 1.0-最佳实践-何时选择平滑扩容

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
简介: 什么是平滑扩容PolarDB-X 平滑扩容是指通过增加 RDS 的数量以提升整体性能。当 RDS 的 IOPS、CPU、磁盘容量等指标到达瓶颈,并且 SQL 优化、RDS 升配已无法解决瓶颈(例如磁盘已升至顶配)时,可通过 PolarDB-X 水平扩容增加 RDS 数量,提升 PolarDB-X 数据库的容量。

什么是平滑扩容

PolarDB-X 平滑扩容是指通过增加 RDS 的数量以提升整体性能。当 RDS 的 IOPS、CPU、磁盘容量等指标到达瓶颈,并且 SQL 优化、RDS 升配已无法解决瓶颈(例如磁盘已升至顶配)时,可通过 PolarDB-X 水平扩容增加 RDS 数量,提升 PolarDB-X 数据库的容量。

PolarDB-X 平滑扩容通过迁移分库到新 RDS 来降低原 RDS 的压力。例如,扩容前8个库的压力集中在一个 RDS 实例上,扩容后8个库分别部署在两个 RDS 实例上,单个 RDS 实例的压力就明显降低。如下图所示:

drds-expansion1.png

说明:平滑扩容多次后,如果出现 RDS 数量和分库数量相等的情况,需要创建另外一个 PolarDB-X 和预期容量 RDS 的数据库,再进行数据迁移以达到更大规模数据容量扩展的目标。此过程较复杂,推荐创建 PolarDB-X 数据库时要考虑未来2-3年数据的增长预期,做好 RDS 数量规划。

判断是否需要平滑扩容

PolarDB-X 是否需要进行平滑扩容,可以通过观察 RDS 的三个指标进行判断:IOPS、CPU、磁盘空间。

在 RDS 控制台也可以针对这些指标设置专门的报警项,报警策略及默认阈值见下图。

2.png

CPU 及 IOPS 指标

RDS 平台 CPU 监控信息。

3.png

RDS 对 IO 的频率做了限制,体现在 IOPS 这个指标上。

4.png

对于以上两个指标,如果发现任何一个指标长期保持在80%以上或频繁收到报警信息,请考虑通过以下步骤来解决:

  1. 尝试 SQL 优化。CPU 利用率过高的问题通常都可以通过这一步解决,详情请参见 MySQL CPU 使用率高的解决方法MySQL IOPS 使用率高的解决方法
  2. SQL 优化无法解决问题时,可以升高 RDS 的相关规格。详情请参见 RDS 升配文档。
  3. 当 CPU 和 IOPS 超标时,可以通过设置只读库的方式来分担主库负荷。注意读写分离会影响读一致性。详情请参见设置读写分离文档。
  4. 当以上步骤无法很好地解决问题时,请考虑进行 PolarDB-X 扩容。

磁盘空间

RDS 的磁盘空间有以下几种:

  1. 数据空间:数据所占用的空间。随着数据的插入,空间占用量会一直增长。磁盘存储容量的余量建议保持在30%以上。
  2. 系统文件空间:包括共享表空间、错误日志文件等。
  3. Binlog 文件空间:这是数据库运行过程中产生的空间。更新事务越多,空间占用量就越大。

判断是否需要扩容主要关注数据空间即可。当数据空间将要或预期要超出磁盘容量时,可以通过扩容的方式将数据分散到多个 RDS。

5.png

扩容风险及注意事项

PolarDB-X 扩容流程分为 配置>迁移>切换>清理 四个步骤。具体请参见扩容操作文档。

在扩容前请注意以下事项:

  • 如果需要新增5个或5个以上 RDS 实例,需要事先提工单,以防后端迁移资源不足造成迁移不成功。
  • 源 RDS 实例扩容过程中会有读压力,请尽量在源 RDS 低负载时操作。
  • 扩容期间请勿在控制台提交 DDL 任务或连接 PolarDB-X 直接执行 DDL SQL,否则会导致扩容任务失败。
  • 扩容需要源库表中有主键,如果没有需要事先加好主键。
  • 扩容的切换动作会将读写流量切换到新增的 RDS 上,切换过程大约持续3~5分钟,建议在停业务的情况下进行切换。
  • 在执行切换前,扩容动作不会对 PolarDB-X 产生任何影响。因此在切换前都可以通过回滚来放弃本次扩容。
  • 扩容操作对数据库有一定压力,建议在业务低谷期操作。
相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
相关文章
|
2月前
|
存储 关系型数据库 分布式数据库
GraphRAG:基于PolarDB+通义千问+LangChain的知识图谱+大模型最佳实践
本文介绍了如何使用PolarDB、通义千问和LangChain搭建GraphRAG系统,结合知识图谱和向量检索提升问答质量。通过实例展示了单独使用向量检索和图检索的局限性,并通过图+向量联合搜索增强了问答准确性。PolarDB支持AGE图引擎和pgvector插件,实现图数据和向量数据的统一存储与检索,提升了RAG系统的性能和效果。
|
1月前
|
存储 关系型数据库 分布式数据库
GraphRAG:基于PolarDB+通义千问+LangChain的知识图谱+大模型最佳实践
本文介绍了一种结合知识图谱与大型语言模型(LLM)的GraphRAG系统,利用PolarDB、通义千问及LangChain实现。知识图谱通过结构化信息、语义理解和推理等功能,增强了信息检索与自然语言处理效果。PolarDB具备图引擎与向量检索能力,适配知识图谱存储与查询。通义千问处理自然语言,LangChain则整合模型与应用。实战步骤包括环境准备、数据库配置与数据导入,并通过实例展示了图谱与向量联合检索的优越性,提升了问答系统的准确性和实用性。
|
3月前
|
监控 关系型数据库 分布式数据库
PolarDB 读写分离的最佳实践
【8月更文第27天】PolarDB 是阿里云推出的一款高度兼容 MySQL、PostgreSQL 和 Oracle 的云原生数据库服务。它支持读写分离,能够显著提高应用的性能和响应速度。本文将详细介绍如何在 PolarDB 中实施读写分离策略,并通过示例代码演示具体的配置步骤。
117 1
|
6月前
|
SQL canal 算法
PolarDB-X最佳实践:如何设计一张订单表
本文主要内容是如何使用全局索引与CO_HASH分区算法(CO_HASH),实现高效的多维度查询。
|
6月前
|
Kubernetes 关系型数据库 分布式数据库
【PolarDB开源】PolarDB与Kubernetes集成:容器化部署的最佳实践
【5月更文挑战第21天】本文介绍了将阿里云的高性能数据库PolarDB与容器编排工具Kubernetes集成的步骤。首先,需准备Kubernetes集群和PolarDB Docker镜像,安装Helm。然后,通过Helm部署PolarDB,设置存储类和副本数。接着,应用配置PolarDB连接信息,打包成Docker镜像并在K8s集群中部署。此外,调整PolarDB参数以优化性能,并使用Prometheus和Grafana监控。本文为PolarDB在Kubernetes中的最佳实践提供了指导。
163 4
|
6月前
|
SQL 关系型数据库 分布式数据库
PolarDB产品使用合集之Drds扩容或者缩容该怎么操作
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
6月前
|
存储 关系型数据库 分布式数据库
PolarDB-X最佳实践系列(五):使用通义千问和存储过程快速生成测试数据
我们在测试数据库性能的过程中,通常需要生成一批测试数据。 以前,一般要写一段程序或者脚本来完成这项工作,但现在是2024年啦!时代变了!
PolarDB-X最佳实践系列(五):使用通义千问和存储过程快速生成测试数据
|
6月前
|
关系型数据库 分布式数据库 数据库
drds扩容缩容
drds扩容缩容
135 2
|
6月前
|
关系型数据库 MySQL 分布式数据库
PolarDB-X最佳实践系列(三):如何实现高效的分页查询
分页查询是数据库中常见的操作。本文将介绍,如何在数据库中(无论是单机还是分布式)高效的进行翻页操作。
112931 10
PolarDB-X最佳实践系列(三):如何实现高效的分页查询
|
11月前
|
关系型数据库 分布式数据库
Drds如何扩容或者缩容?
Drds如何扩容或者缩容?
147 1

相关产品

  • 云原生分布式数据库 PolarDB-X