IBM Cloud Docs
缩放磁盘,内存和 CPU

缩放磁盘,内存和 CPU

您可以手动调整可用于 IBM Cloud® Messages for RabbitMQ 部署的资源量,以适应您的工作负载和数据大小。

资源细目

Messages for RabbitMQ 部署在集群中具有三个数据成员,并且将资源平均分配给所有三个成员。 例如, RabbitMQ 部署的最小存储量为 3072 MB ,这相当于每个成员的初始大小为 1024 MB。 RabbitMQ 部署的最小 RAM 为 3072 MB ,这等同于每个成员的初始分配为 1024 MB。

计费基于分配给服务的 资源量。

磁盘使用情况

存储器显示分配给服务的磁盘空间量。 每个成员获取所分配空间的相同份额。 将在 RabbitMQ 集群中的三个数据成员之间复制数据,因此您使用的存储总量大约是数据集大小的三倍。

磁盘分配会影响磁盘的性能,较大的磁盘具有更高的性能。 磁盘的每秒基线输入/输出操作数 (IOPS) 性能为每 GB 10 IOPS。 持续达到 IOPS 限制会导致吞吐量和消息处理延迟,这可以通过扩展磁盘空间来缓解。

无法缩减存储器。 如果数据集大小已减小,那么可以通过备份和复原到新部署来恢复空间。

RAM

RabbitMQ 在检测到它正在使用 40% 的可用内存时进行调速发布,以防止内存使用率在活动峰值期间不可控制地增长。 如果您发现定期达到限制,那么可以为部署分配更多内存。 将内存添加到总分配会将内存同样添加到成员。

队列重新平衡

如果您注意到一个 RabbitMQ 节点占用的资源比另一个节点多得多,那么这些队列可能在节点之间分布不均。 发生此情况的可能原因如下:

  • 您仅连接到一个 VIP ,并且将在单个节点上创建所有队列。
  • 发生了滚动重新启动,这会将队列移至先重新启动的节点。

触发队列的均匀分布会导致负载,直到所有队列均匀分布,因此在部署处于压力或未缩放状态时不应执行此操作。

要均匀分布队列,可以使用 RabbitMQ 管理 API 对部署运行 https POST 调用 /api/rebalance/queues

专用核心数

您可以启用或增加对部署的 CPU 分配。 使用专用核心时,将为资源组提供具有 CPU 份额预留的单租户主机。 然后,将保证您的部署具有指定的最小 CPU 数。 0 专用核心的缺省值在共享主机上使用计算资源。 从 0 到> 0 CPU 计数供应,并将部署移动到新主机,数据库将在此移动过程中重新启动。 从> 0 到 0 CPU 计数,将部署移动到共享主机,并在移动过程中重新启动数据库。

缩放注意事项

  • 扩展部署可能会导致 RabbitMQ 重新启动。 如果需要将已缩放的部署移动到具有更多容量的主机,那么将在移动过程中重新启动数据库。

  • 缩减 RAM 或 CPU 不会触发重新启动。

  • 磁盘无法缩小。

  • 少数缩放操作的运行时间可能比其他操作长。 启用专用核心会将您的部署移动到自己的主机上,并且可能需要比添加更多核心更长的时间。 同样,大幅增加 CPU , RAM 或磁盘可能需要比较小的增加时间更长的时间来考虑供应更多的底层硬件资源。

  • 缩放操作记录在 IBM Cloud® Activity Tracker中。

  • 如果找到资源使用情况的一致趋势,或者希望在达到特定资源阈值时设置缩放,请参阅 自动缩放

通过 UI 进行缩放

数据成员及其资源分配的可视表示在部署的 " 管理 " 页面的 资源 选项卡上可用。

资源中的 "缩放资源" 面板{: caption="图 1。 Resources"caption-side =" bottom "} 中的" Scale Resources " 面板

调整滑块以增加或减少分配给服务的资源。 滑块控制每个成员分配多少内存或磁盘。 UI 当前使用粗颗粒度分辨率 8 GB 增量用于磁盘, 1 GB 增量用于内存。 UI 显示滑块位置的已分配内存或磁盘总数。 单击 缩放 以触发缩放操作并返回到仪表板概述。

CLI 中的资源和扩展

IBM Cloud CLI 云数据库插件 支持查看和缩放部署上的资源。 使用命令 cdb deployment-groups 可查看服务的当前资源信息,包括可调整的资源组。 要缩放任何可用资源组,请使用 cdb deployment-groups-set 命令。

例如,用于查看名为 "example-deployment" 的部署的资源组的命令:
ibmcloud cdb deployment-groups example-deployment

这将生成输出:

Group   member
Count   3
|
+   Memory
|   Allocation              3072mb
|   Allocation per member   1024mb
|   Minimum                 3072mb
|   Step Size               384mb
|   Adjustable              true
|
+   CPU
|   Allocation              0
|   Allocation per member   0
|   Minimum                 9
|   Step Size               3
|   Adjustable              true
|
+   Disk
|   Allocation              3072mb
|   Allocation per member   1024mb
|   Minimum                 3072mb
|   Step Size               3072mb
|   Adjustable              true

该部署有三个成员,总共分配了 3072 MB RAM 磁盘。 "每个成员" 分配为 1024 MB RAM 和 1024 MB 磁盘。 最小值是可以设置的总分配的最小值。 步长是可以调整总分配的最小量。

cdb deployment-groups-set 命令允许设置 RAM 总量或磁盘分配总量 (以 MB 为单位)。 例如,要将 "example-deployment" 的内存扩展到每个内存成员的 2048 MB RAM (总内存为 6144 MB) ,请使用以下命令:
ibmcloud cdb deployment-groups-set example-deployment member --memory 6144

在 API 中缩放

服务的 " 概述 " 面板上显示的 基础端点 提供了用于通过 API 访问此部署的基本 URL。 如果需要以编程方式管理或自动缩放,请将其与 /groups 端点配合使用。

要查看部署上的当前资源和可扩展资源,

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

将每个内存成员的部署内存扩展至 2048 MB RAM (总内存为 6144 MB)。

curl -X PATCH 'https://api.{region}.databases.cloud.ibm.com/v4/ibm/deployments/{id}/groups/member' \
-H "Authorization: Bearer $APIKEY" \
-H "Content-Type: application/json" \
-d '{"memory": {
        "allocation_mb": 6144
      }
    }'

有关更多信息,请参阅 API 参考