添加磁盘、内存和 CPU
共享计算托管模式支持更细粒度的资源分配,但为了保持清晰,用户界面中不显示这些资源分配。 更多信息,请参阅 托管模式。
要扩展 隔离计算 主机风味实例,请将相关 hostflavor
参数设置为目标隔离计算大小,例如"b3c.4x16.encrypted"。 由于这包括 CPU 和 RAM 分配选择,因此不要单独选择
CPU 和 RAM。
要在最小 CPU 值和 2 CPU 之间扩展 共享计算 主机风味实例,请将 CPU 设置为 0,并使用以下命令扩展 RAM 分配。 CPU 值将按 1 CPU: 8 GB RAM 的比例缩放,最高为 2 CPU。 要扩展到 2 CPU
以上,请将 CPU 和 RAM 分配设置为目标分配。 对于这两个参数,请确保包含相关的 hostflavor
参数。
要扩展 隔离计算 主机风味实例,请将相关 host_flavor
参数设置为目标隔离计算大小,例如"b3c.4x16.encrypted"。 由于这包括 CPU 和 RAM 分配选择,因此不要单独选择
CPU 和 RAM。
要在最小 CPU 值和 2 CPU 之间扩展 共享计算 主机风味实例,请将 CPU 设置为 0,并使用以下命令扩展 RAM 分配。 CPU 值将按 1 CPU: 8 GB RAM 的比例缩放,最高为 2 CPU。 要扩展到 2 CPU
以上,请将 CPU 和 RAM 分配设置为目标分配。 对于这两个参数,请确保包含相关的 host_flavor
参数。
要扩展 隔离计算 主机风味实例,请将相关 host_flavor
参数设置为目标隔离计算大小,例如"b3c.4x16.encrypted"。 由于这包括 CPU 和
RAM 分配选择,因此不要单独选择 CPU 和 RAM。
要在最小 CPU 值和 2 CPU 之间扩展 共享计算 主机风味实例,请将 CPU 设置为 0,并使用以下命令扩展 RAM 分配。 CPU 值将按 1 CPU: 8 GB RAM 的比例缩放,最高为 2 CPU。 要扩展到
2 CPU 以上,请将 CPU 和 RAM 分配设置为目标分配。 对于这两个参数,请确保包含相关的 host_flavor
参数。
您可以手动调整 IBM Cloud® Databases for PostgreSQL 部署的可用资源,以适应您的工作负载和数据规模。
注意:Terraform 扩展分配是按成员进行的。
注:API 比例分配使用总分配值。
资源细目
Databases for PostgreSQL 部署在群集中有两个数据成员,资源平均分配给两个成员。 例如,PostgreSQL 部署的最小存储空间为 10240 MB,相当于每个成员的初始大小为 5120 MB。 PostgreSQL 部署的最小内存为 8192 MB,相当于每个成员初始分配 4096 MB。
计费基于分配给服务的 _ 总_资源。
磁盘使用情况
存储显示分配给服务的磁盘空间大小。 每个成员都能平等分享分配的空间。 您的数据将在 PostgreSQL 数据库群集中的所有数据成员之间复制。
磁盘分配也会影响磁盘性能,磁盘越大,性能越高。 磁盘的基准每秒输入/输出操作(IOPS)性能为每 GB 10 IOPS。 扩展磁盘以提高部署可处理的 IOPS。
无法缩减存储空间。 如果数据集大小减少,可以通过备份并恢复到新的部署来恢复空间。
RAM
如果您发现查询和数据库活动因内存不足而出现性能问题,您可以调整分配给服务的内存大小。 如果您的数据库实例采用隔离计算托管模式,请选择与您的资源需求相匹配的 CPU x 内存配置。 如果您的数据库实例采用共享计算或专用核心托管模式,请为数据库选择所需的内存分配。
专用核心已废弃,将于 2025 年 5 月移除。
向总分配中添加内存时,各成员的内存分配是相同的。Databases for PostgreSQL部署的内存分配策略设置为 50%堆内存和 50%系统内存,因此增加 RAM 会同时增加堆内存和系统内存。 内存可增可减。
work_mem
, maintenance_work_mem
和 effective_cache_size
是根据部署的总内存自动调整的。 当您在部署中缩放内存时,也会对它们进行设置。 缩放时,调整值不会中断正在运行的部署。
当您扩展部署时,分配给数据库共享缓冲池的内存量不会自动调整。 建议将其设置为部署总内存的 25%。 您可以通过 shared_buffer
配置中的 PostgreSQL's 设置手动调整共享缓冲池。 它不能自动调整,因为更改 shared_buffer
需要重新启动数据库。
vCPU
如果发现数据库工作负载需要更多的 CPU 资源,可以调整分配给服务的 CPU 数量。 如果您的数据库实例采用隔离计算托管模式,请选择与您的资源需求相匹配的 CPU x 内存配置。 如果您的数据库实例采用共享计算或专用核心托管模式,请为数据库选择所需的 CPU 分配。
旧式专用核心实例已被淘汰,将于 2025 年 5 月移除。 有关新托管模式的更多信息,请参阅 托管模式概述。
缩放考虑因素
- 扩大规模可能会导致重新启动部署。 如果需要将部署转移到容量更大的主机上,则会在转移过程中重新启动部署。
- 缩减内存或 CPU 不会触发重启。
- 磁盘不能缩小。
- 在托管模式(共享计算、隔离计算和专用内核)之间进行扩展,将您的部署转移到新的主机上。 作为移动的一部分,您的数据库将重新启动。 当您的部署被转移到新的主机上时,所需的时间也会比添加更多资源更长。 有关详细信息,请参阅 共享计算和隔离计算。
- 同样,大幅增加 CPU、RAM 或磁盘的运行时间可能比少量增加资源以配置更多底层硬件资源的时间更长。
- 缩放操作记录在 IBM Cloud® Activity Tracker Event Routing。
- 如果您发现资源使用有一致的趋势,或希望在达到特定资源阈值时进行扩展,请在部署上启用 autoscaling。
- Databases for PostgreSQL旨在平衡整个集群的工作负载,并可从水平扩展中受益。 如果您担心性能问题,请查看 添加 PostgreSQL 成员。
审查现有资源和托管模式
在 “资源”选项卡中,可以找到“托管模式”和“资源分配”磁贴。 这些磁贴反映了您当前的资源和托管模式。 选择“*配置”*可调整每个磁贴中的设置。
用户界面中的缩放
在用户界面的“资源”选项卡中,选择“资源分配”磁贴上的“配置”。 这将打开一个面板,您可以在其中调整资源。
如果数据库使用的是隔离计算托管模式,则会看到“主机大小”表,在该表中可以选择数据库每个成员的vCPU和 RAM 配置。
如果您使用的是共享计算托管模式,您会看到小型配置(为每个成员提供0.5个vCPU和 4 GB 内存)、小型自定义选项或自定义配置。 小型自定义表示使用 CLI、API 或 Terraform 对数据库进行了扩展,提供了更精细的资源扩展,以及根据 RAM 值按比例自动分配vCPU的选项。 在用户界面上,可以扩展到“小”和“自定义”,但无法扩展到 CLI、API 或 Terraform 提供的细粒度值。 使用自定义时,拖动滑块或调整输入框中的值,选择数据库每个成员的vCPU和 RAM 值。
磁盘(GB/成员)"滑块是您为每个成员选择的磁盘。 拖动滑块或调整输入框中的数字,可更改磁盘 GB 数。 请注意,磁盘与 IOPS 绑定,1 GB = 10 IOPS。
成员是指数据库中成员的数量。 对于PostgreSQL,成员设置为 2。
在底部的计算器中查看预计总费用。 需要注意的是,如果您有不追溯成本(也称为传统定价结构),则扩展数据库实例会移除部分或全部传统定价。 有关不溯既往及其终止时间的更多信息,请参见 Gradfathering 过渡时间表。
完成后,单击“应用更改”触发缩放操作。
在用户界面中切换托管模型
在用户界面的“资源”选项卡中,选择“托管模型”磁贴上的“配置”。 这将打开一个面板,您可以在此调整托管模式选择。
第一个选项是选择托管模式。 在这里,您可以切换到不同的托管模式。
在下方,您还可以看到调整所选新托管模式资源的选项。 按照上一节“用户界面中的缩放”中的说明调整资源。
单击“应用更改”可触发此缩放操作。
审查现有资源和托管模式
IBM Cloud CLI 云数据库插件 支持查看和扩展部署上的资源。 使用命令 cdb deployment-groups
查看服务的当前资源信息,包括哪些资源组可调整。 要缩放任何可用资源组,请使用 cdb deployment-groups-set
命令。
例如,使用以下命令可以查看名为 "example-deployment "的部署的资源组。 请注意,此命令还将通过 hostflavor
属性显示您的数据库是 共享计算 还是 独立计算 实例。 如果 hostflavor
为空,则表示使用的是旧式托管模式。
ibmcloud cdb deployment-groups example-deployment
输出结果如下
Group member
Count 2
|
+ Memory
| Allocation 8192mb
| Allocation per member 4096mb
| Minimum 4096mb
| Step Size 256mb
| Adjustable true
| Cpu Enforcement Ratio Ceiling 32768mb
| Cpu Enforcement Ratio 8192mb
|
+ CPU
| Allocation 6
| Allocation per member 3
| Minimum 6
| Step Size 2
| Adjustable true
|
+ HostFlavor
| ID multitenant
| Name
| HostingSize
|
+ Disk
| Allocation 10240mb
| Allocation per member 5120mb
| Minimum 10240mb
| Step Size 1024mb
| Adjustable true
部署有两个成员,共分配 4096 MB 内存和 10240 MB 磁盘。 每个成员 "分配 4096 MB 内存和 5120 MB 磁盘。 最小值是可以设置的最低分配总量。 步长是可以调整分配总量的最小值。
CLI 中的资源和扩展
cdb deployment-groups-set
命令允许以 MB 为单位设置总内存或总磁盘分配。 例如,要将 "example-deployment "的每个内存成员的内存容量扩展到 4096 MB(总内存容量为 8192 MB),可使用以下命令:
ibmcloud cdb deployment-groups-set example-deployment member --memory 8192
确定数据库的托管模式
使用以下命令查看 host_flavor
属性的值。 如果数据库使用的是已废弃的托管模式(非共享或隔离计算),则此项为空。
ibmcloud cdb groups <INSTANCE_NAME_OR_CRN> --json
在 CLI 中切换到托管模式以及在托管模式之间切换
如果数据库是 共享计算 实例,则可以使用以下命令调整内存、CPU 和磁盘选项。 这也可用于将数据库从不同的托管模式移动到共享计算托管模式。
ibmcloud cdb deployment-groups-set <INSTANCE_NAME_OR_CRN> <GROUP_ID> [--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。 磁盘单独缩放。 要扩展 Cloud Databases 隔离计算实例,请使用以下命令,例如用于扩展到 4 CPU x 16 RAM 实例的命令。 该命令还可用于将数据库从不同的托管模式移动到隔离计算托管模式。
请注意,由于主机类型选择包括 CPU 和 RAM 大小 b3c.4x16.encrypted
为 4 CPU 和 16 RAM),因此该请求不接受隔离大小选择以及单独的 CPU 和 RAM 分配选择。
ibmcloud cdb deployment-groups-set <INSTANCE_NAME_OR_CRN> <GROUP_ID> [--disk <val>] [--hostflavor <hostflavor>]
例如,使用以下命令扩展到隔离计算实例或扩展隔离计算实例:
ibmcloud cdb deployment-groups-set crn:abc ... xyz:: member --hostflavor b3c.4x16.encrypted
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 -H "Authorization: Bearer $APIKEY" 'https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/groups'
使用应用程序接口进行扩展
要将部署的内存扩展到每个成员 4096 MB 内存(共有 2 个成员,因此总内存容量为 8192 MB),请使用 /deployments/{id}/groups/{group_id} API 端点。
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
}
}'
确定数据库的托管模式
使用以下命令查看 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
参数
{: api
host_flavor
参数定义了计算大小。 要配置共享计算实例,请指定 multitenant
。 要配置隔离计算实例,请输入所需的 CPU 和 RAM 配置的适当值。
主机风味 | 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 脚本,从而扩展您的实例。 在下面的示例中,指定了 cpu
、memory
和 disk
分配。 请注意,如果已选择主机类型(隔离计算或共享计算多租户),请在脚本中保留主机类型选择。 要执行更改,请运行 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-epostgresql"
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 PostgreSQL database connection string" {
value = "http://${ibm_database.test_acc.ibm_database_connection.icd_conn}"
}
在 Terraform 中切换和扩展托管模型
选择 您希望将数据库扩展到的托管模型。 您可以稍后更改此内容。
要将 Databases for PostgreSQL 实例扩展到共享计算托管模式,请将 "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-postgresql"
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 PostgreSQL database connection string" {
value = "http://${ibm_database.test_acc.ibm_database_connection.icd_conn}"
}
使用相同的 "host_flavor"
参数将 Databases for PostgreSQL 实例扩展为隔离计算,并将其设置为所需的隔离大小。 该命令用于将数据库实例扩展到不同的隔离计算大小,以及从其他主机类型移动到隔离计算主机类型。 表 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-postgresql"
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 PostgreSQL database connection string" {
value = "http://${ibm_database.test_acc.ibm_database_connection.icd_conn}"
}
host flavor
参数
host_flavor
参数定义了计算大小。 要配置共享计算实例,请指定 multitenant
。 要配置隔离计算实例,请输入所需的 CPU 和 RAM 配置的适当值。
主机风味 | 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 |
Cloud Databases 隔离计算不支持 CPU 和 RAM 自动扩展。 可进行磁盘自动扩展。 如果您已配置隔离实例或从具有自动扩展功能的部署切换过来,请使用 IBM Cloud® Monitoring集成 密切关注您的资源,该集成可提供内存、磁盘空间和磁盘 I/O 利用率指标。 要为实例添加资源,请手动扩展部署。