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"。

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

资源细目

Databases for Redis 部署在集群中具有两个数据成员,并且资源均分配给这两个成员。 例如,Redis 部署的最小存储量为 2048 MB,这相当于每个成员的初始大小为 1024 MB,可用增量为 512 MB。 Redis 部署的最小 RAM 为 2048 MB,这表示每个成员的初始分配为 1024 MB,而可用的增量为 124 MB。

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

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

磁盘使用情况

缺省情况下,Databases for Redis 使用磁盘进行数据持久性。 每个数据成员的磁盘分配必须足以存储数据。 将磁盘添加到总分配时,它会将其均等地添加到两个成员。

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

如果已将 Redis 配置为高速缓存,那么已在部署上禁用持久性。 如果重新启用 Redis 持久性,请确保首先缩放磁盘以防止丢失数据。

无法缩减存储器。 您可以通过备份和复原到新部署来恢复空间。

内存

默认情况下,您的部署配置了 noeviction 策略,因此内存资源应根据数据集进行调整。 每个数据节点都包含一个数据副本,因此您使用的内存总量大约是数据集大小的两倍。 将内存添加到总分配时,会将内存均等地添加到两个成员。

如果您的数据库实例采用隔离计算托管模式,请选择与您的资源需求相匹配的 CPU x 内存配置。 如果您的数据库实例采用共享计算或专用核心托管模式,请为数据库选择所需的内存分配。 请注意,专用核心已被弃用,并将于 2025 年 5 月移除。

此外,使用 maxmemory 配置的部署设置为使用节点内存的 80%,因此在扩展内存以容纳更多数据时,您可能还需要 调整 maxmemory 设置

如果 将 Redis 配置为高速缓存,那么可以缩放到最适合高速缓存需求的内存量。

vCPU

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

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

缩放考虑因素

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

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

  • 磁盘无法缩小。

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

  • 同样,大幅增加 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。

成员是数据库的成员数。 对于Redis,成员设置为 2。

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

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

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

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

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

接下来,你还会看到调整所选新托管模式资源的选项。 请按照上一节“用户界面中的缩放”中的说明调整资源。

单击“应用更改”可触发该比例操作。

审查现有资源和托管模式

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   2
|
+   Memory
|   Allocation              2048mb
|   Allocation per member   1024mb
|   Minimum                 2048mb
|   Step Size               256mb
|   Adjustable              true
|
+   CPU
|   Allocation              0
|   Allocation per member   0
|   Minimum                 6
|   Step Size               2
|   Adjustable              true
|
+   Disk
|   Allocation              2048mb
|   Allocation per member   1024mb
|   Minimum                 2048mb
|   Step Size               2048mb
|   Adjustable              true

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

CLI 中的资源和扩展

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

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

确定数据库的托管模式

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

ibmcloud cdb groups <INSTANCE_NAME_OR_CRN> --json

在 CLI 托管模式之间切换

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

ibmcloud cdb deployment-groups-set <INSTANCE_NAME_OR_CRN> <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 托管模式。

ibmcloud cdb deployment-groups-set <INSTANCE_NAME_OR_CRN> <GROUPID> [--disk <val>] [--hostflavor <hostflavor>]

例如,使用

ibmcloud cdb deployment-groups-set crn:abc ... xyz:: member  --hostflavor b3c.4x16.encrypted

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

主机风味大小参数
主机风味 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 中缩放

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

要查看 "example-deployment" 上的当前资源和可扩展资源,请使用类似如下的命令:

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

要将 "example-deployment "每个内存成员的内存容量扩展到 4096 MB(总内存容量为 8192 MB),请使用类似命令:

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

有关更多信息,请参阅 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": 2},
     "memory": {"allocation_mb": 8192}
    }' \

要将任何实例扩展到 Cloud Databases 隔离计算实例,或扩展到不同的隔离计算大小,请使用 host_flavor 参数,此时应设置为所需的隔离计算大小。 可用主机大小及其 host_flavor 值参数列于 表 1 中。 例如,{"host_flavor": "b3c.4x16.encrypted"}。 请注意,由于主机类型选择包括 CPU 和 RAM 大小(b3c.4x16.encrypted 为 4 CPU 和 16 RAM),因此该请求不接受隔离大小选择和单独的 CPU 和 RAM 分配选择。 使用 Cloud Databases 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-redis"
  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 Redis database connection string" {
  value = "http://${ibm_database.test_acc.ibm_database_connection.icd_conn}"
}

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

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

要将Databases for Redis实例扩展到共享计算托管模式,请将 "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-redis"
  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 Redis database connection string" {
  value = "http://${ibm_database.test_acc.ibm_database_connection.icd_conn}"
}

使用相同的 "host_flavor" 参数将Databases for Redis实例扩展为隔离计算,并设置为所需的隔离大小。 该命令可用于将数据库实例扩展到不同的隔离计算大小,以及从其他主机类型移动到隔离计算主机类型。 表 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-redis"
  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 Redis database connection string" {
  value = "http://${ibm_database.test_acc.ibm_database_connection.icd_conn}"
}