当数据量和计算量动态增长,计算资源(CPU、磁盘、内存以及数据处理节点数量)成为数据处理速度的瓶颈时,您可以对实例动态扩展,在线变更实例规格和计算节点。
目前AnalyticDB PostgreSQL版不同的实例资源类型对计算节点变配的支持程度不一样,具体如下:
变配操作 | Serverless模式 | 存储弹性模式 |
升级节点规格 | 不支持 | 支持 |
降级节点规格 | 不支持 | 支持 |
新增计算节点 | 支持 | 支持 |
减少计算节点 | 支持 | 支持 |
注意事项
存储弹性模式实例V6.3.10.5及以上版本/V7.0.1.2及以上版本支持减少计算节点数量,如何查看内核版本,请参见查看内核小版本。
存储弹性模式实例V6.6.2.0及以上版本/V7.0.5.0及以上版本在增加计算节点过程中支持读写,而之前版本仅支持只读;在减少计算节点过程中,写入数据可能会受到影响。
存储弹性模式实例减少计算节点时,请确保缩容后的实例规格能容纳当前实例数据。
Serverless实例的计算节点变配会导致正在执行的SQL中断且变配后无法恢复执行。
变配方式选择
升降节点规格,是指节点数量不变,对已有节点的CPU、内存、磁盘等资源进行规格变配。该方式不涉及数据的迁移,变配速度较快。
增加或减少计算节点,是指在原实例基础上增加或删除相同规格的计算节点,总资源也会随之变化,但会对数据做重新的负载均衡,所耗时间与数据量成比例,是一个相对复杂的操作。两种变配方式的耗时可参考变配耗时。
当有资源变配的需求时,如何选择变配方式,应该遵循以下原则:
查看节点监控,在业务运行期间,计算节点的CPU和IO使用率长时间处于较高水位时,优先选择增加计算节点。在CPU、内存资源不足,而IO使用率不高时,优先做节点规格升配,可以更快地解决性能瓶颈。
磁盘水位较高,计算资源充足时,可以选择在升级节点规格时只增加节点存储容量,无需增加计算节点,节省成本。
有资源降配需求时,优先选择降低节点规格;在规格无法降低时,再选择减少计算节点。
变配耗时
升级节点规格与降级节点规格耗时约为10分钟;增加计算节点与减少计算节点的耗时与实例模式相关,具体信息如下:
存储弹性模式
根据数据量的不同,实例规格变配的过程大约需要30分钟到数十个小时不等,与表数量、分区表数量、索引数量、是否压缩、总数据量、实例规格等因素相关。预估变配时间可以参考公式:
变配时间(min)=总数据量(GB)/1.25/变配后节点数+预留时间。
预留时间包括资源申请等步骤执行耗时,固定为30分钟。例如,总数据量为1TB 的实例扩容到16节点,预估的变配时间为1024/1.25/16+30=81min。
说明在新增计算节点过程中:
V6.6.2.0以下版本/V7.0.5.0以下版本实例会出现重分布中的表无法写入和短暂无法读取现象,可以稍后进行重试。
V6.6.2.0及以上版本/V7.0.5.0及以上版本支持新增计算节点过程读写不中断。
Serverless
Serverless支持分钟级别的在线弹性扩缩容,扩缩容过程中无需进行数据搬迁,因此扩缩容速度取决于资源申请的速度,与数据规模无关。实验室测试扩缩容性能如下:
16个节点及以内的扩缩容耗时不超过60秒。
16个节点以上的扩缩容耗时不超过5分钟。
变配操作
新增计算节点
在线扩容是指实例在变配过程中不影响业务正常运行的能力,即库中所有表读写不中断。存储弹性模式6.0在V6.6.2.0及以上版本,以及7.0在V7.0.5.0及以上版本,都支持了新增计算节点的在线变配能力。需要注意的点包括:
变配过程中会依次对所有表执行重分布。非重分布中的表不受变配影响,重分布中的表支持所有查询,支持INSERT、COPY、DELETE、UPDATE命令,不支持所有DDL类命令和VACUUM命令,当对其执行DDL时会报错:
TRUNCATE t1;
ERROR: Unsupport 'TRUNCATE TABLE' command during online expansion on 't1'
大量数据写入、更新会延长变配时间。为了优化变配速度,对于业务侧写入较频繁的表,重分布将会在一段时间后加写锁,这可能会短暂影响表的读写。您可从控制台实时观察扩容进度。
在低版本的实例中,当新增计算节点时,不支持在线变配,可能会导致表的读写中断。请在业务低峰期进行。
- 登录云原生数据仓库AnalyticDB PostgreSQL版控制台。
- 在控制台左上角,选择实例所在地域。
找到目标实例,在操作列中选择 。
在提示对话框中,勾选我已知晓该操作影响,并同意继续进行变配操作,单击确定。
说明仅Serverless实例需要执行该步骤。
在变配页面,选择合适的节点数量(segment),勾选服务协议,单击立即购买。
警告存储弹性模式实例:计算节点变配过程中处于重分布状态的表只读,新版本支持可读写,重分布时间与表大小相关,请您合理安排变配任务。
Serverless实例:变配操作提交后会导致SQL执行中断且变配后无法恢复执行。
返回实例列表页面,待目标实例状态变更为运行中即可。
您可以对某些性能要求较高的表,执行以下SQL进行预热,从而加速访问。
SELECT count(*) FROM <hot_table>;
说明仅需对Serverless实例做数据预热操作。
节点扩缩容会经历初始化资源、同步系统表元数据信息、加锁保护并修改数据分布信息、解锁并清理资源、异步恢复本地缓存五个步骤。由于本地缓存是异步恢复,所以短时间本地缓存命中率不高。预热数据可以加速访问。
减少计算节点
存储弹性模式实例减少计算节点时,请确保缩容后的实例规格能容纳当前实例数据。在缩容期间,请减少对实例的数据更新及写入操作。
- 登录云原生数据仓库AnalyticDB PostgreSQL版控制台。
- 在控制台左上角,选择实例所在地域。
找到目标实例,在操作列中选择 。
在提示对话框中,勾选我已知晓该操作影响,并同意继续进行变配操作,单击确定。
在变配页面,选择合适的节点数量(segment),勾选服务协议,单击立即购买。
警告存储弹性模式实例:计算节点变配过程中处于重分布状态的表只读,重分布时间与表大小相关,请您合理安排变配任务。
Serverless实例:变配操作提交后会导致SQL执行中断且变配后无法恢复执行。
返回实例列表页面,待目标实例状态变更为运行中即可。
您可以对某些性能要求较高的表,执行以下SQL进行预热,从而加速访问。
升级节点规格
- 登录云原生数据仓库AnalyticDB PostgreSQL版控制台。
- 在控制台左上角,选择实例所在地域。
找到目标实例,在操作列中选择 。
在变配页面,修改以下配置。
配置
说明
实例资源类型
固定为当前实例的资源类型,无法修改。
节点规格(segment)
根据需求选择合适的节点规格。
节点存储容量(segment)
根据需求选择合适的计算节点存储容量。
警告计算节点规格变配过程中数据库只支持读,请您合理安排变配任务。
计算节点存储容量变更时实例可正常读写。
勾选服务协议,单击立即购买。
返回实例列表页面,待目标实例状态变更为运行中即可。
降级节点规格
- 登录云原生数据仓库AnalyticDB PostgreSQL版控制台。
- 在控制台左上角,选择实例所在地域。
找到目标实例,在操作列中选择 。
在变配页面,修改以下配置。
配置
说明
实例资源类型
固定为当前实例的资源类型,无法修改。
节点规格(segment)
根据需求选择合适的节点规格。
节点存储容量(segment)
暂不支持缩小节点存储容量。
说明存储弹性模式基础版实例暂不提供该配置项。
警告计算节点规格变配过程中数据库支持只读,请您合理安排变配任务。
计算节点存储容量变更时,实例可正常读写。
勾选服务协议,单击立即购买。
返回实例列表页面,待目标实例状态变更为运行中即可。