IBM Cloud Docs
自动缩放

自动缩放

自动扩展旨在对 IBM Cloud® Databases for PostgreSQL 部署中资源使用的中短期趋势做出响应。 启用后,将按照您指定的时间间隔检查您的部署。 如果资源不足,就会为部署添加更多资源。 要监控您的资源,请使用 IBM Cloud® Monitoring 集成,它可提供内存、磁盘空间和磁盘 I/O 使用情况的指标。

您可以将部署设置为自动扩展磁盘、内存或两者。

一般自动缩放参数:

  • 根据一段时间的使用情况,何时扩大规模。
  • 按每个成员所占资源的百分比来确定缩放比例。
  • 缩放频率,以秒、分或小时为单位。
  • 缩放的硬限制,您的部署会在限制范围内停止缩放。

内存 - 内存自动扩展基于磁盘 I/O 使用情况,可在读写负载增加时为磁盘缓存提供更多内存。 这样做的好处是,额外的内存可以支持更多缓存,从而减轻磁盘 I/O 的压力。 目前还没有基于内存使用情况的自动缩放配置。

磁盘 - 当磁盘使用量达到一定阈值、磁盘 I/O 使用量达到一定阈值或两者都达到一定阈值时,磁盘自动伸缩可进行伸缩。 (用户界面中的“或”操作为 inclusive or|v。)部署可用的 IOPS 量随磁盘大小的增加而增加,比例为每 GB 10 IOPS。

隔离计算不支持 CPU 和 RAM 自动扩展。 可进行磁盘自动扩展。 如果您调配了一个隔离实例,或从使用自动缩放功能的部署中切换过来,请使用 "IBM Cloud® Monitoring集成 监控您的资源,它可提供内存、磁盘空间和磁盘 I/O 利用率指标。 要为实例添加资源,请手动扩展部署。

资源编号指的是部署中的每个数据库成员。 例如,PostgreSQL部署中有两个数据成员,如果部署使用 10 GB 磁盘和 1 GB 内存扩展,这意味着每个成员都有 10 GB 磁盘和 1 GB 内存。 部署中添加的总资源为 20 GB 磁盘和 2 GB 内存。

自动扩展注意事项

  • 扩大部署规模可能会导致数据库重启。 如果需要将已扩展的部署转移到容量更大的主机上,那么数据库将作为转移的一部分重新启动。

  • 磁盘不能缩小。

  • 一些缩放操作可能比其他操作运行时间更长。 大幅增加内存或磁盘可能比小幅增加内存或磁盘需要更长的时间,以考虑配置更多的底层硬件资源。

  • 自动缩放操作记录在 IBM Cloud® Activity Tracker Event Routing 中。

  • 限制:

    • 无法设置任何东西在少于 60 秒的时间间隔内缩放。
    • 每个成员的最大磁盘容量 = 4 TB。
    • 每个成员的最大内存 = 240 GB。
  • 自动缩放不会缩减磁盘或内存使用量减少的部署。 为部署调配的 RAM 将保留,以满足未来的需求,或直到您手动缩减部署规模。 由于磁盘无法缩减,因此为部署配置的磁盘仍将保留。

  • 如果您只是偶尔或很少需要向部署中添加资源,请手动扩展 您的部署。

  • 只读副本不会自动缩放以匹配领导者。 如果存储的数据量超出了分配给部署的磁盘,请先扩展只读副本的磁盘,然后再扩展领导者的磁盘。 先扩展只读副本可确保只读副本的空间不会耗尽。 如果你是为了性能而不是空间来扩展领导者磁盘,那么就没有必要扩展只读副本。

在用户界面中配置自动扩展

自动缩放面板位于左侧导航菜单的“资源”选项卡上。 要启用缩放功能,请输入参数。 然后,选中要启用参数的复选框。 请务必单击“保存更改”以保存配置并使更改生效。

要禁用自动缩放功能,请清除不想再使用的参数框。 如果清除所有复选框,自动缩放功能将被禁用。 单击保存更改保存配置。

隔离计算不支持 CPU 和 RAM 自动扩展。 可进行磁盘自动扩展。 如果您调配了一个隔离实例,或从使用自动缩放功能的部署中切换过来,请使用 "IBM Cloud® Monitoring集成 监控您的资源,它可提供内存、磁盘空间和磁盘 I/O 利用率指标。 要为实例添加资源,请手动扩展部署。

在 CLI 中配置自动扩展

您可以使用 cdb deployment-autoscaling 命令,通过 CLI 获取部署的自动缩放参数。

ibmcloud cdb deployment-autoscaling <DEPLOYMENT_NAME_OR_CRN> member

要通过 CLI 启用和设置自动缩放参数,请通过 cdb deployment-autoscaling-set 命令使用 JSON 对象或文件。

ibmcloud cdb deployment-autoscaling-set <DEPLOYMENT_NAME_OR_CRN> member '{"autoscaling": { "memory": {"scalers": {"io_utilization": {"enabled": true, "over_period": "5m","above_percent": 90}},"rate": {"increase_percent": 10.0, "period_seconds": 300,"limit_mb_per_member": 125952,"units": "mb"}}}}'

隔离计算不支持 CPU 和 RAM 自动扩展。 可进行磁盘自动扩展。 如果您调配了一个隔离实例,或从使用自动缩放功能的部署中切换过来,请使用 "IBM Cloud® Monitoring集成 监控您的资源,它可提供内存、磁盘空间和磁盘 I/O 利用率指标。 要为实例添加资源,请手动扩展部署。

在应用程序接口中配置自动扩展

您可以通过向 /deployments/{id}/groups/{group_id}/autoscaling 端点发送 GET 请求,从而通过 API 获取部署的自动缩放参数。

curl -X GET -H "Authorization: Bearer $APIKEY" 'https://api.{region}.databases.cloud.ibm.com/v4/ibm/deployments/{id}/groups/member/autoscaling'

要通过 API 启用和设置部署的自动缩放参数,请向端点发送 POST 请求。 将 scalers (io_utilizationcapacity) 设置为 true 即可启用自动缩放功能。

curl -X PATCH https://api.{region}.databases.cloud.ibm.com/v4/ibm/deployments/{id}/groups/member/autoscaling -H 'Authorization: Bearer <>'
-H 'Content-Type: application/json'
-d '{
    "autoscaling": {
      "memory": {
        "scalers": {
          "io_utilization": {
            "enabled": true,
            "over_period": "5m",
            "above_percent": 90
          }
        },
        "limits": {
          "scale_increase_percent": 10,
          "scale_period_seconds": 30,
          "scale_maximum_mb": 125952,
          "units": "mb"
        }
      }
    }
  }'

要禁用自动缩放,请发送 PATCH 请求,并将当前启用的缩放器设置为 false。 如果全部设置为 false,则在部署中禁用了自动缩放功能。

隔离计算不支持 CPU 和 RAM 自动扩展。 可进行磁盘自动扩展。 如果您调配了一个隔离实例,或从使用自动缩放功能的部署中切换过来,请使用 "IBM Cloud® Monitoring集成 监控您的资源,它可提供内存、磁盘空间和磁盘 I/O 利用率指标。 要为实例添加资源,请手动扩展部署。