实例类型与灵活性
- 提供 50 多种实例类型,涵盖计算优化、内存优化和存储优化等配置
- 所有实例类型均配备 基于 NVMe 的存储,可提供稳定、高性能的磁盘 I/O
- 独立资源扩缩容:可根据工作负载选择合适的 CPU、内存和存储组合
选择合适的实例类型
扩缩容的工作原理
扩缩容流程
- 备用实例预配:创建一个采用目标实例类型 (CPU、内存和存储配置) 的新备用实例
- 从 S3 备份恢复:通过恢复存储在 S3 中的最新备份来初始化该备用实例
-
并行 WAL 回放:备用实例使用由 WAL-G 提供支持的并行恢复机制,应用自备份以来的所有预写日志 (WAL) 变更
- WAL-G 可实现快速的并行恢复操作
- WAL-G 的创建者所在的 Ubicloud 团队也是我们的合作伙伴,这确保了深厚的专业能力和优化支持
- 复制追平:备用实例通过流式传输并应用持续产生的 WAL 变更来追上主节点
-
故障转移:备用实例完全同步后,系统会执行受控故障转移,将其提升为新的主节点
- 这是唯一会导致停机的步骤 (约 30 秒)
- 所有活动连接都会在故障转移期间中断
- 故障转移完成后,客户端必须重新建立连接
- 旧实例退役:原始实例会在故障转移完成后退役
扩缩容耗时
- 备份恢复:将最新的全量备份从 S3 恢复到新实例所需的时间
- WAL 回放:自上次全量备份以来,回放增量 WAL 变更所需的时间
- 并行恢复:WAL-G 的并行恢复机制可显著加快这一过程
使用 WAL-G 并行恢复
- 并行下载和解压:从 S3 同时拉取多个备份分段并解压
- 高效的 WAL 回放:在条件允许时并行应用增量 WAL 变更
- 优化的流式传输:直接从 S3 存储流式读取,无需中间副本
- 快速恢复:虽然总耗时取决于数据量,但并行化方式可显著加快整个过程
发起扩缩容操作
- 前往实例的 Settings 选项卡
- 在 Scaling 部分中,向下滚动到 Service size
- 选择目标实例类型
- 确认更改后,点击“Apply changes”
扩缩容策略
垂直扩缩容
- 精细控制:可从 50 多种实例类型中选择,精细调整 CPU、内存和存储
- 工作负载优化:可选择针对特定工作负载优化的配置 (计算密集型、内存密集型或存储密集型)
- 成本效率:只为所需资源付费,避免资源过度配置
通过只读副本进行横向扩缩容
- 将读查询分流到专用的只读副本实例
- 每个只读副本都是一个完全独立的 Postgres 实例,拥有各自的计算资源和内存
- 只读副本通过流式读取对象存储中的 WAL 变更来实现高效复制
ClickHouse 集成的 CDC 扩缩容
- 将 CDC 工作线程的规模调整为 1 到 24 个 CPU 核心
- 内存会按 CPU 核心数的 4 倍自动扩缩
- 通过 ClickPipes OpenAPI 调整扩缩容
自动扩缩容
- 磁盘使用率达到 85%:您会通过 Cloud Console 和电子邮件收到通知。
- 磁盘使用率达到 90%:自动扩缩容开始。存储容量将扩展至您的实例家族可用的下一个更大规格。CPU 和内存保持不变;但如果当前实例规格不支持更大磁盘,实例规格也会随之提升。只读副本会与主节点一同扩缩容。
- 磁盘使用率达到 95%:切换会跳过任何已配置的维护窗口,并在新服务器就绪后立即执行。
切换与连接
只读模式
读取仍可正常进行,而写入会因标准 Postgres 错误
cannot execute INSERT in a read-only transaction 而失败。如果可用空间继续减少,现有连接将被终止,以确保每个会话都采用只读设置;客户端重新连接后,读取即可恢复正常。可用空间恢复后,系统会自动解除只读模式,通常是在扩容切换完成后立即解除。
示例
- 已使用 870 GB (85%) 时,您会收到存储空间通知。
- 已使用 922 GB (90%) 时,自动扩缩容启动。系统会预配一台存储容量为 2048 GB 的替换服务器,并从最新备份恢复数据,同时您的实例继续处理流量。
- 替换服务器追赶完成后,系统将执行切换;如果配置了维护窗口,则会在该窗口内执行。连接会中断不到一分钟,您的应用会重新连接到同一主机名,使用率将回落至约 45%。
- 如果在切换完成前可用空间降至 2% 以下 (约 20 GB) ,实例将进入只读模式。完成向更大磁盘的切换后,写入会自动恢复。