IBM Cloud Docs
扩展磁盘、内存和 CPU

扩展磁盘、内存和 CPU

共享计算托管模式支持更细粒度的资源分配,但为了保持清晰,用户界面中不显示这些资源分配。 更多信息,请参阅 托管模式

要扩展 隔离计算 主机风味实例,请将相关的 hostflavor 参数设置为目标隔离计算大小,例如"b3c.4x16.encrypted"。 由于这包括 CPU 和 RAM 分配选择,因此不要单独选择 CPU 和 RAM。

要在最小 CPU 值和 2 CPU 之间扩展 Shared Compute 主机风味实例,请将 CPU 设置为 0,并使用本文档中的以下命令扩展 RAM 分配。 CPU 值将按 1 CPU: 8 GB RAM 的比例缩放,最高为 2 CPU。 要扩展到 2 CPU 以上,请将 CPU 和 RAM 分配设置为目标分配。 对于这两种情况,请确保包含相关的 hostflavor 参数 "multitenant"。

要扩展 隔离计算 主机风味实例,请将相关的 host_flavor 参数设置为目标隔离计算大小,例如"b3c.4x16.encrypted"。 由于这包括 CPU 和 RAM 分配选择,因此不要单独选择 CPU 和 RAM。

要在最小 CPU 值和 2 CPU 之间扩展 Shared Compute 主机风味实例,请将 CPU 设置为 0,并使用以下命令扩展 RAM 分配。 CPU 值将按 1 CPU: 8 GB RAM 的比例缩放,最高为 2 CPU。 要扩展到 2 CPU 以上,请将 CPU 和 RAM 分配设置为目标分配。 对于这两种情况,请确保包含相关的 host_flavor 参数 "multitenant"。

要扩展 隔离计算 主机风味实例,请将相关的 host_flavor 参数设置为目标隔离计算大小,例如"b3c.4x16.encrypted"。 由于这包括 CPU 和 RAM 分配选择,因此不要单独选择 CPU 和 RAM。

要在最小 CPU 值和 2 CPU 之间扩展 Shared Compute 主机风味实例,请将 CPU 设置为 0,并使用以下命令扩展 RAM 分配。 CPU 值将按 1 CPU: 8 GB RAM 的比例缩放,最高为 2 CPU。 要扩展到 2 CPU 以上,请将 CPU 和 RAM 分配设置为目标分配。 对于这两种情况,请确保包含相关的 host_flavor 参数 "multitenant"。

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

资源细目

Databases for MongoDB 在集群中与三个数据成员一起运行,并且将资源平均分配给所有成员。 例如,MongoDB 部署的最小磁盘大小为 30720 MB,这相当于每个成员的初始大小为 10240 MB。 MongoDB 部署的最小内存为 12288 MB,相当于每个成员初始分配 4096 MB。

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

供应部署时,可以选择磁盘和内存的初始资源分配。 供应后,您可以扩展部署,因为它需要更多资源。

磁盘使用情况

磁盘分配必须足以存储所有数据。 您的数据将复制到两个数据成员,因此您使用的磁盘总量至少是数据集大小的两倍。

磁盘分配还会影响磁盘的性能,较大的磁盘具有更高的性能。 磁盘的基线每秒输入输出操作数 (IOPS) 性能为每 GB 10 IOPS。 扩展磁盘以增加部署可处理的 IOPS。

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

RAM

内存资源用于数据库操作,并控制分配给 内部和文件系统高速缓存 的内存量。 如果您的数据库可以处理来自高速缓存的大部分请求,那么它不必从磁盘读取并执行更好的操作。

分配给部署的内存量在所有成员之间进行分割。 将内存添加到总分配会将内存均等地添加到所有成员。

vCPU

如果发现数据库工作负载需要更多的 CPU 资源,可以调整分配给服务的 CPU 数量。 如果您的数据库实例采用隔离计算托管模式,请选择与您的资源需求相匹配的 CPU x 内存配置。 如果您的数据库实例采用共享计算或专用核心托管模式,请为数据库选择所需的 CPU 分配。

旧式专用核心实例已被淘汰,将于 2025 年 5 月移除。 有关新托管模式的更多信息,请参阅 托管模式概述

缩放考虑因素

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

  • 缩减 RAM 或 CPU 不会触发数据库节点重新启动。

  • 磁盘不能缩小。

  • 在托管模式(共享计算、隔离计算和专用内核)之间进行扩展,将您的部署转移到新的主机上。 作为移动的一部分,您的数据库将重新启动。 当您的部署被转移到新的主机上时,所需的时间也会比添加更多资源更长。 有关详细信息,请参阅 共享计算和隔离计算

  • 同样,大幅增加内存或磁盘可能比小幅增加内存或磁盘需要更长的时间,以考虑配置更多的底层硬件资源。

  • 缩放操作记录在 IBM Cloud® Activity Tracker Event Routing

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

审查现有资源和托管模式

“资源”选项卡中,可以找到“托管模式”和“资源分配”磁贴。 这些磁贴反映了您当前的资源和托管模式。 选择“*配置”*可调整每个磁贴中的设置。

在 UI 中缩放

在用户界面的“资源”选项卡中,选择“资源分配”磁贴上的“配置”。 这将打开一个面板,您可以在其中调整资源。

如果数据库使用的是隔离计算托管模式,则会看到“主机大小”表,在该表中可以选择数据库每个成员的vCPU和 RAM 配置。

如果您使用的是共享计算托管模式,您会看到小型配置(为每个成员提供0.5个vCPU和 4 GB 内存)、小型自定义选项或自定义配置。 小型自定义表示使用 CLI、API 或 Terraform 对数据库进行了扩展,提供了更精细的资源扩展,以及根据 RAM 值按比例自动分配vCPU的选项。 在用户界面上,可以扩展到“小”和“自定义”,但无法扩展到 CLI、API 或 Terraform 提供的细粒度值。 使用自定义时,拖动滑块或调整输入框中的值,以选择数据库每个成员的vCPU和 RAM 值。

磁盘(GB/成员)"滑块是您为每个成员选择的磁盘。 拖动滑块或调整输入框中的数字,可更改磁盘 GB 数。 请注意,磁盘与 IOPS 绑定,1 GB = 10 IOPS。

成员是数据库的成员数。 对于MongoDB,成员设置为 3。

在底部的计算器中查看预计总费用。 需要注意的是,如果您有不追溯成本(也称为传统定价结构),则扩展数据库实例会移除部分或全部传统定价。 有关不溯既往及其终止时间的更多信息,请参阅 托管模式过渡时间表

完成后,单击“应用更改”触发缩放操作。

在用户界面中切换托管模型

在用户界面的“资源”选项卡中,选择“托管模型”磁贴上的“配置”。 这将打开一个面板,您可以在此调整托管模式选择。

第一个选项是选择托管模式。 在这里,您可以切换到不同的托管模式。

在下面的选项中,您还可以调整所选新托管模式的资源。 按照上一节“用户界面中的缩放”中的说明调整资源。

单击“应用更改”可触发此缩放操作。

审查现有资源和托管模式

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

例如,使用以下命令可以查看名为 "example-deployment "的部署的资源组。 请注意,该命令还会通过 hostflavor 属性显示数据库是 共享计算 实例还是 隔离计算 实例。 如果 hostflavor 为空,则表示使用的是旧式托管模式。

ibmcloud cdb deployment-groups <INSTANCE_NAME_OR_CRN>

此命令生成输出:

Group   member
Count   3
|
+   Memory
|   Allocation                      6144mb
|   Allocation per member           2048mb
|   Minimum                         6144mb
|   Step Size                       256mb
|   Adjustable                      true
|   Cpu Enforcement Ratio Ceiling   49152mb
|   Cpu Enforcement Ratio           8192mb

|
+   CPU
|   Allocation              0
|   Allocation per member   0
|   Minimum                 6
|   Step Size               2
|   Adjustable              true
|                           
+   HostFlavor    
|   ID            multitenant
|   Name          
|   HostingSize   
|
+   Disk
|   Allocation              30720mb
|   Allocation per member   10240mb
|   Minimum                 30720mb
|   Step Size               2048mb
|   Adjustable              true

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

CLI 中的资源和扩展

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

ibmcloud cdb deployment-groups-set <INSTANCE_NAME_OR_CRN> member --memory 12288

确定数据库的托管模式

使用以下命令查看 hostflavor 属性的值。 如果数据库使用的是已废弃的托管模式(非共享或隔离计算),该值将为空。

ibmcloud cdb groups <deployment_id> --json

在 CLI 托管模式之间切换

如果数据库是 共享计算 实例,则可以使用以下命令调整内存、CPU 和磁盘选项。 如果数据库不在共享计算托管模式下,该命令也会将数据库从不同的托管模式移动到共享计算托管模式。

ibmcloud cdb deployment-groups-set <deploymentid> <groupid> [--memory <val>] [--cpu <val>] [--disk <val>] [--hostflavor multitenant]

例如,使用以下命令可扩展到共享计算实例或扩展共享计算实例:

ibmcloud cdb deployment-groups-set crn:abc ... xyz:: member  --memory 24576 --cpu 6  --hostflavor multitenant

如果您的数据库是 隔离计算 实例,则通过选择隔离计算大小(请参见表 1 中的所有大小)来一起调整内存和 CPU。 磁盘单独缩放。 如果数据库不在 Isolated Compute 上,该命令也会将数据库从不同的托管模式移动到 Isolated Compute 托管模式。

请注意,由于主机类型选择包括 CPU 和 RAM 大小 b3c.4x16.encrypted 为 4 CPU 和 16 RAM),因此该请求不接受隔离大小选择以及单独的 CPU 和 RAM 分配选择。

ibmcloud cdb deployment-groups-set <deploymentid> <groupid> [--disk <val>] [--hostflavor <hostflavor>]

例如,使用以下命令扩展到隔离计算实例或扩展隔离计算实例:

ibmcloud cdb deployment-groups-set crn:abc ... xyz:: member  --hostflavor b3c.8x32.encrypted

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

hostflavor 参数

hostflavor 参数定义了计算大小。 要配置共享计算实例,请指定 multitenant。 要配置隔离计算实例,请输入所需的 CPU 和 RAM 配置的适当值。

主机风味大小参数
主机风味 hostflavor 值
共享计算 multitenant
4 CPU x 16 RAM b3c.4x16.encrypted
8 CPU x 32 RAM b3c.8x32.encrypted
8 CPU x 64 RAM m3c.8x64.encrypted
16 CPU x 64 RAM b3c.16x64.encrypted
32 CPU x 128 RAM b3c.32x128.encrypted
30 CPU x 240 RAM m3c.30x240.encrypted

审查现有资源和托管模式

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

要查看部署上的当前资源和可扩展资源,请使用 {id} 端点。 请注意,该命令还会通过 host_flavor 属性显示数据库是 共享计算 实例还是 隔离计算 实例。 如果 host_flavor 为空,则表示使用的是旧式托管模式。

curl -X GET https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/groups -H 'Authorization: Bearer <>' \

使用应用程序接口进行扩展

要将部署的每个内存成员的内存扩展到 4096 MB RAM(总内存为 12288 MB),请使用以下命令:

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

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

确定数据库的托管模式

使用以下命令查看 host_flavor 属性的值。 如果数据库使用的是已废弃的托管模式(非共享或隔离计算),该值将为空。

curl -X GET https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/groups
-H 'Authorization: Bearer <>' \

在应用程序接口中切换托管模型

要扩展任何 Cloud Databases 共享计算实例,请使用以下命令,将 host_flavor 设置为 multitenant。 如果数据库不在共享计算托管模式下,该命令也会将数据库从不同的托管模式移动到共享计算托管模式。

curl -X PATCH https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/groups/member
-H 'Authorization: Bearer <>'
-H 'Content-Type: application/json'
-d '{"host_flavor": {"id": "multitenant"},
     "cpu": {"allocation_count": 3},
     "memory": {"allocation_mb": 12288}
    }' \

要将任何实例扩展到 Cloud Databases 隔离计算实例,或扩展到不同的隔离计算大小,请使用 host_flavor 参数,此时应设置为所需的隔离计算大小。 可用主机大小及其 host_flavor 值参数列于 表 1 中。 例如,{"host_flavor": "b3c.4x16.encrypted"}。 请注意,由于主机类型选择包括 CPU 和 RAM 大小(b3c.4x16.encrypted 为 4 CPU 和 16 RAM),因此该请求不接受隔离大小选择和单独的 CPU 和 RAM 分配选择。 使用Cloud DatabasesAPI 扩展端点进行扩展。API 扩展端点进行扩展,命令如下

curl -X PATCH https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/groups/member
-H 'Authorization: Bearer <>'
-H 'Content-Type: application/json'
-d '{"host_flavor": {"id": "b3c.4x16.encrypted"}}' \

通过隔离计算进行配置或扩展时,不允许分配 CPU 和 RAM。 为 host_flavor 参数指定 mulitenant 以获得独立的 CPU 和 RAM 选择。

Cloud Databases 隔离计算不支持 CPU 和 RAM 自动扩展。 可进行磁盘自动扩展。 如果您已配置隔离实例或从具有自动扩展功能的部署切换过来,请使用 IBM Cloud® Monitoring集成 密切关注您的资源,该集成可提供内存、磁盘空间和磁盘 I/O 利用率指标。 要为实例添加资源,请手动扩展部署。

host flavor 参数

host_flavor 参数定义了计算大小。 要配置共享计算实例,请指定 multitenant。 要配置隔离计算实例,请输入所需的 CPU 和 RAM 配置的适当值。

表 1 主机味道大小参数
主机风味 host_flavor 值
共享计算 multitenant
4 CPU x 16 RAM b3c.4x16.encrypted
8 CPU x 32 RAM b3c.8x32.encrypted
8 CPU x 64 RAM m3c.8x64.encrypted
16 CPU x 64 RAM b3c.16x64.encrypted
32 CPU x 128 RAM b3c.32x128.encrypted
30 CPU x 240 RAM m3c.30x240.encrypted

审查现有资源和托管模式

通过检查 terraform 脚本中的 cpu { allocation_count = }memory {allocation_mb = }disk { allocation_mb = },查看数据库的资源分配情况。 查看 host_flavor 设置,以确定您的数据库是 共享计算 还是 隔离计算 托管模式。 如果 host_flavor 不存在,则说明您的数据库使用的是旧式托管模式。

使用 Terraform 进行扩展

在现有实例上执行 Terraform 脚本之前,使用 terraform plan 命令将当前基础架构状态与 Terraform 文件中定义的理想状态进行比较。 对 resource_group_id, service plan, version, key_protect_instance, key_protect_key, backup_encryption_key_crn 属性的任何更改都会重新创建您的实例。 有关当前使用 Forces new resource 规范的参数引用列表,请参阅 ibm_database Terraform 注册表

针对您感兴趣的资源调整 Terraform 脚本,从而扩展您的实例。 在下面的示例中,指定了 cpumemorydisk 分配。 请注意,如果已选择主机类型(隔离计算或共享计算多租户),请在脚本中保留主机类型选择。

要执行更改,请运行 terraform apply

data "ibm_resource_group" "group" {
  name = "<your_group>"
}
resource "ibm_database" "<your_database>" {
  name              = "<your_database_name>"
  plan              = "standard"
  location          = "eu-gb"
  service           = "databases-for-mongodb"
  resource_group_id = data.ibm_resource_group.group.id
  tags              = ["tag1", "tag2"]
  adminpassword     = "password12"
  group {
    group_id = "member"
    cpu {
      allocation_count = 6
    }
    memory {
      allocation_mb = 24576
    }
    disk {
      allocation_mb = 256000
    }
  }
  users {
    name     = "user123"
    password = "password12"
  }
  allowlist {
    address     = "172.168.1.1/32"
    description = "desc"
  }
}
output "ICD MongoDB database connection string" {
  value = "http://${ibm_database.test_acc.ibm_database_connection.icd_conn}"
}

在 Terraform 中切换和扩展托管模型

选择 您希望将数据库扩展到的托管模型。 您可以稍后更改此内容。

要将Databases for MongoDB实例扩展到共享计算托管模式,请将 "host_flavor" 参数设置为 multitenant。 如果您想扩展到共享计算托管模式,或者您想保留主机模式并扩展资源,这都是可行的。 要执行更改,请运行 terraform apply

请参阅以下示例:

data "ibm_resource_group" "group" {
  name = "<your_group>"
}
resource "ibm_database" "<your_database>" {
  name              = "<your_database_name>"
  plan              = "standard"
  location          = "eu-gb"
  service           = "databases-for-mongodb"
  resource_group_id = data.ibm_resource_group.group.id
  tags              = ["tag1", "tag2"]
  adminpassword     = "password12"
  group {
    group_id = "member"
    host_flavor {
      id = "multitenant"
    },
    cpu {
      allocation_count = 6
    }
    memory {
      allocation_mb = 24576
    }
    disk {
      allocation_mb = 256000
    }
  }
  users {
    name     = "user123"
    password = "password12"
  }
  allowlist {
    address     = "172.168.1.1/32"
    description = "desc"
  }
}
output "ICD MongoDB database connection string" {
  value = "http://${ibm_database.test_acc.ibm_database_connection.icd_conn}"
}

使用相同的 "host_flavor" 参数将Databases for MongoDB实例扩展为隔离计算,并设置为所需的隔离大小。 该命令可用于将数据库实例扩展到不同的隔离计算大小,以及从其他主机类型移动到隔离计算主机类型。 表 1 列出了可用的主机大小及其 host_flavor value 参数。 例如,{"host_flavor": "b3c.4x16.encrypted"}。 请注意,由于主机类型选择包括 CPU 和 RAM 大小(b3c.4x16.encrypted 为 4 CPU 和 16 RAM),因此该请求不接受隔离大小选择以及单独的 CPU 和 RAM 分配选择。

要执行更改,请运行 terraform apply

data "ibm_resource_group" "group" {
  name = "<your_group>"
}
resource "ibm_database" "<your_database>" {
  name              = "<your_database_name>"
  plan              = "standard"
  location          = "eu-gb"
  service           = "databases-for-mongodb"
  resource_group_id = data.ibm_resource_group.group.id
  tags              = ["tag1", "tag2"]
  adminpassword     = "password12"
  group {
    group_id = "member"
    host_flavor {
      id = "b3c.8x32.encrypted"
    }
    disk {
      allocation_mb = 256000
    }
  }
  users {
    name     = "user123"
    password = "password12"
  }
  allowlist {
    address     = "172.168.1.1/32"
    description = "desc"
  }
}
output "ICD MongoDB database connection string" {
  value = "http://${ibm_database.test_acc.ibm_database_connection.icd_conn}"
}