读取池自动扩缩

读取池自动扩缩功能会根据应用的工作负载需求,在读取池中自动添加或移除读取池节点

您可以使用以下两种目标指标之一,限制读取池的平均 CPU 利用率或限制允许访问读取池的客户端连接数,从而控制读取池自动扩缩:

  • 平均 CPU 利用率:可用于设置您期望的读取池运行时的平均 CPU 使用率。读取池会根据应用的工作负载 CPU 使用情况自动缩容或扩容
  • 平均数据库连接数:用于指定每个节点应服务的平均客户端数据库连接数。读取池会根据客户端连接数自动缩容或扩容

如需应用这些目标指标,您还必须设置读取池节点数的下限和上限。

如需启用读取池自动扩缩,您可以在实例上配置一个或两个目标指标。如果这两个指标均处于有效状态,Cloud SQL 会应用这两个指标所指示的最大读取池节点数。

下表列出了每个目标指标的限制:

目标指标名称 限制 相关公开指标
平均 CPU 利用率 0.1 到 0.9 之间。 读取池中读取池各个节点的平均 CPU 利用率 (cloudsql.googleapis.com/database/cpu/utilization)。
平均数据库连接数 10 到 100,000 之间。注意:可接受的最大值与 max_connections 数据库标志设置的最大值相关。 表示读取池中各个读取池节点的平均数据库客户端连接数 (cloudsql.googleapis.com/database/network/connections)。

当满足调整读取池大小的条件时,您可以在 Google Cloud 控制台中查看读取池自动扩缩操作。在读取池自动扩缩完成之前,对读取池和主实例的所有其他操作都会被阻止。

读取池自动扩缩特征

以下特征适用:

  • 缩容操作一次只能移除一个节点。
  • 扩容操作可并行添加所需数量的节点。
  • 默认情况下,系统会同时应用缩容和扩容操作。您可以选择手动停用缩容操作 (disableScaleIn),以阻止此类操作。
  • 默认情况下,连续的读取池自动扩缩操作之间会应用 600 秒的冷却时间。缩容或扩容都需要至少 60 秒的冷却时间。
  • 设置目标指标时,您还必须定义要使用的读取池节点数的最小值 (minNodeCount) 和最大值 (maxNodeCount)。如果您为现有读取池启用自动扩缩功能,则当前读取池的大小必须在您设置的范围内。

限制

存在以下限制:

  • 读取池自动扩缩支持每 24 小时最多执行 10 次自动扩缩操作。
  • 如果您想创建新的读取池或扩缩现有读取池,必须等待先前的创建和扩缩操作完成。此限制适用于与读取池关联的操作,以及与同一主实例关联的其他读取池。如果您尝试运行并发操作,可能会收到以下错误消息:
    Operation failed because another operation was already in progress.
    

准备工作

创建启用自动扩缩功能的读取池

如果您为 AVERAGE_CPU_UTILIZATION 指定的目标值为 0.50,系统将向读取池添加或从中移除读取池节点,以使整个读取池的平均 CPU 利用率保持在 0.50 或更低水平。

gcloud

如需创建启用自动扩缩功能的读取池,请运行以下命令:

  gcloud sql instances create READ_POOL_NAME \
  --tier=MACHINE_TIER --edition=ENTERPRISE_PLUS \
  --instance-type=READ_POOL_INSTANCE --node-count=NODE_COUNT \
  --database-version=DATABASE_VERSION \
  --master-instance-name=PRIMARY_INSTANCE_NAME \
  --region=REGION --network=NETWORK_NAME \
  --no-assign-ip \
  --auto-scale-enabled \
  --auto-scale-max-node-count=MAX_NODE_COUNT \
  --auto-scale-min-node-count=MIN_NODE_COUNT \
  --auto-scale-target-metrics=TARGET_METRIC_1=VALUE_1
  

替换以下内容:

  • READ_POOL_NAME:您要为读取池分配的名称。
  • MACHINE_TIER:您要使用的机器层级,例如 db-perf-optimized-N-2
  • NODE_COUNT:您想要的初始读取池节点数。
  • DATABASE_VERSION:您要使用的数据库版本,例如 POSTGRES_16
  • PRIMARY_INSTANCE_NAME:您要使用的主实例的名称。
  • REGION:您要使用的区域,例如 us-east1
  • NETWORK_NAME:您要使用的网络的名称。
  • MAX_NODE_COUNT:您希望读取池使用的读取池节点数上限,例如 5
  • MIN_NODE_COUNT:您希望读取池使用的读取池节点数下限,例如 1
  • TARGET_METRIC_1:您要使用的目标指标,例如以下指标:
    • AVERAGE_CPU_UTILIZATION
    • AVERAGE_DB_CONNECTIONS
    您必须至少定义这两个可用指标中的一个。
  • VALUE_1:您要为之前指明的目标指标分配的值。例如,对于 AVERAGE_CPU_UTILIZATION 目标指标,您可以分配值 0.50

Terraform

如需创建启用自动扩缩功能的读取池,请使用 Terraform 资源

以下示例包含主实例和读取池的资源。


resource "google_sql_database_instance" "primary" {
  name             = "mysql-primary"
  database_version = "MYSQL_8_4"
  region           = "europe-west4"

  instance_type = "CLOUD_SQL_INSTANCE"

  settings {
    tier    = "db-perf-optimized-N-2"
    edition = "ENTERPRISE_PLUS"

    backup_configuration {
      enabled            = true
      binary_log_enabled = true
    }

    ip_configuration {
      ipv4_enabled = true
    }
  }
}

resource "google_sql_database_instance" "replica" {
  name             = "mysql-replica"
  database_version = "MYSQL_8_4"
  region           = "europe-west4"

  master_instance_name = google_sql_database_instance.primary.name
  instance_type        = "READ_POOL_INSTANCE"
  node_count           = 2

  settings {
    tier    = "db-perf-optimized-N-2"
    edition = "ENTERPRISE_PLUS"

    ip_configuration {
      ipv4_enabled = true
    }
    read_pool_auto_scale_config {
      enabled                    = true
      disable_scale_in           = false
      max_node_count             = 20
      min_node_count             = 2
      scale_in_cooldown_seconds  = 600
      scale_out_cooldown_seconds = 600
      target_metrics {
        metric       = "AVERAGE_CPU_UTILIZATION"
        target_value = 0.5
      }
    }
  }
}

应用更改

如需在 Google Cloud 项目中应用 Terraform 配置,请完成以下部分中的步骤。

准备 Cloud Shell

  1. 启动 Cloud Shell
  2. 设置要应用 Terraform 配置的默认 Google Cloud 项目。

    您只需为每个项目运行一次以下命令,即可在任何目录中运行它。

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    如果您在 Terraform 配置文件中设置显式值,则环境变量会被替换。

准备目录

每个 Terraform 配置文件都必须有自己的目录(也称为“根模块”)。

  1. Cloud Shell 中,创建一个目录,并在该目录中创建一个新文件。文件名必须具有 .tf 扩展名,例如 main.tf。在本教程中,该文件称为 main.tf
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. 如果您按照教程进行操作,可以在每个部分或步骤中复制示例代码。

    将示例代码复制到新创建的 main.tf 中。

    (可选)从 GitHub 中复制代码。如果端到端解决方案包含 Terraform 代码段,则建议这样做。

  3. 查看和修改要应用到您的环境的示例参数。
  4. 保存更改。
  5. 初始化 Terraform。您只需为每个目录执行一次此操作。
    terraform init

    (可选)如需使用最新的 Google 提供程序版本,请添加 -upgrade 选项:

    terraform init -upgrade

应用更改

  1. 查看配置并验证 Terraform 将创建或更新的资源是否符合您的预期:
    terraform plan

    根据需要更正配置。

  2. 通过运行以下命令并在提示符处输入 yes 来应用 Terraform 配置:
    terraform apply

    等待 Terraform 显示“应用完成!”消息。

  3. 打开您的 Google Cloud 项目以查看结果。在 Google Cloud 控制台的界面中找到资源,以确保 Terraform 已创建或更新它们。

删除更改

如需删除更改,请执行以下操作:

  1. 如需停用防删除保护,请在 Terraform 配置文件中将 deletion_protection 参数设置为 false
    deletion_protection =  "false"
  2. 运行以下命令并在提示符处输入 yes,以应用更新后的 Terraform 配置:
    terraform apply
  1. 运行以下命令并在提示符处输入 yes,以移除之前使用 Terraform 配置应用的资源:

    terraform destroy

REST v1

如需创建启用自动扩缩功能的读取池,请使用 POST 请求和 instances:insert 方法。

在使用任何请求数据之前,请先进行以下替换:

  • READ_POOL_NAME:您要为读取池分配的名称。
  • REGION:您希望实例所在的区域,例如 us-central1
  • PRIMARY_INSTANCE_ID:您要使用的主实例的 ID。
  • PROJECT_ID:您希望读取池所在的项目的 ID,例如 my-project-name
  • DATABASE_VERSION:您要使用的数据库版本,例如 MYSQL_8_0_37
  • MACHINE_TIER:您要使用的机器层级,例如 db-perf-optimized-N-2
  • FULL_NETWORK_NAME:您要使用的网络的名称。
  • MAX_NODE_COUNT:您希望读取池使用的读取池节点数上限,例如 10
  • MIN_NODE_COUNT:您希望读取池使用的读取池节点数下限,例如 2
  • TARGET_METRIC_1:您要使用的目标指标,例如 AVERAGE_CPU_UTILIZATIONAVERAGE_DB_CONNECTIONS。 您必须至少定义这两个可用指标中的一个。
  • VALUE_1:您要为之前指明的目标指标分配的值。例如,对于 AVERAGE_CPU_UTILIZATION 目标指标,您可以分配值 0.50
  • NODE_COUNT:您希望读取池最初包含的节点数,例如 3

HTTP 方法和网址:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances

请求 JSON 正文:

{
  "name":"READ_POOL_NAME",
  "region":"REGION",
  "masterInstanceName":"PRIMARY_INSTANCE_ID",
  "project":"PROJECT_ID",
  "databaseVersion":"DATABASE_VERSION",
  "settings":{
    "tier":"MACHINE_TIER",
    "edition":"ENTERPRISE_PLUS",
    "ipConfiguration":{
      "privateNetwork":"FULL_NETWORK_NAME",
      "ipv4Enabled": false
    },
    "readPoolAutoScaleConfig":{
      "enabled": true,
      "minNodeCount": MIN_NODE_COUNT,
      "maxNodeCount": MAX_NODE_COUNT,
      "targetMetrics": [
        {
          "metric":"TARGET_METRIC_1",
          "targetValue": VALUE_1
        }
      ]
    }
  },
  "instanceType":"READ_POOL_INSTANCE",
  "nodeCount": NODE_COUNT
}

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/PRIMARY_INSTANCE_ID",
  "status": "RUNNING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "2023-06-14T18:48:35.499Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "PRIMARY_INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

如需创建启用自动扩缩功能的读取池,请使用 POST 请求和 instances:insert 方法。

在使用任何请求数据之前,请先进行以下替换:

  • READ_POOL_NAME:您要为读取池分配的名称。
  • REGION:您希望实例所在的区域,例如 us-central1
  • PRIMARY_INSTANCE_ID:您要使用的主实例的 ID。
  • PROJECT_ID:您希望读取池所在的项目的 ID,例如 my-project-name
  • DATABASE_VERSION:您要使用的数据库版本,例如 MYSQL_8_0_37
  • MACHINE_TIER:您要使用的机器层级,例如 db-perf-optimized-N-2
  • FULL_NETWORK_NAME:您要使用的网络的名称。
  • MAX_NODE_COUNT:您希望读取池使用的读取池节点数上限,例如 10
  • MIN_NODE_COUNT:您希望读取池使用的读取池节点数下限,例如 2
  • TARGET_METRIC_1:您要使用的目标指标,例如以下指标:
    • AVERAGE_CPU_UTILIZATION
    • AVERAGE_DB_CONNECTIONS
    您必须至少定义这两个可用指标中的一个。
  • VALUE_1:您要为之前指明的目标指标分配的值。在此示例中,为 AVERAGE_CPU_UTILIZATION 目标指标分配值 0.50
  • NODE_COUNT:您希望读取池最初包含的节点数,例如 3

HTTP 方法和网址:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances

请求 JSON 正文:

{
  "name":"READ_POOL_NAME",
  "region":"REGION",
  "masterInstanceName":"PRIMARY_INSTANCE_ID",
  "project":"PROJECT_ID",
  "databaseVersion":"DATABASE_VERSION",
  "settings":{
    "tier":"MACHINE_TIER",
    "edition":"ENTERPRISE_PLUS",
    "ipConfiguration":{
      "privateNetwork":"FULL_NETWORK_NAME",
      "ipv4Enabled": false
    },
    "readPoolAutoScaleConfig":{
      "enabled": true,
      "minNodeCount": MIN_NODE_COUNT,
      "maxNodeCount": MAX_NODE_COUNT,
      "targetMetrics": [
        {
          "metric":"TARGET_METRIC_1",
          "targetValue": VALUE_1
        }
      ]
    }
  },
  "instanceType":"READ_POOL_INSTANCE",
  "nodeCount": NODE_COUNT
}

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/PRIMARTY_INSTANCE_ID",
  "status": "RUNNING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "2023-06-14T18:48:35.499Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "PRIMARTY_INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

在现有读取池上启用读取池自动扩缩功能

如果您已创建读取池,则可以通过指明要使用的自动扩缩配置来启用自动扩缩。

例如,如果您为 AVERAGE_DB_CONNECTIONS 指定的目标值为 50,系统会向读取池添加节点或从读取池中移除节点,以使整个读取池的平均数据库连接数保持在 50 个或更少。

gcloud

如需在现有读取池上启用自动扩缩功能,请运行以下命令。

  gcloud sql instances patch INSTANCE
  --auto-scale-enabled
  --auto-scale-max-node-count=MAX_NODE_COUNT
  --auto-scale-min-node-count=MIN_NODE_COUNT
  --auto-scale-out-cooldown-seconds=COOLDOWN_SECONDS_SCALE_OUT
  --auto-scale-in-cooldown-seconds=COOLDOWN_SECONDS_SCALE_IN
  --auto-scale-target-metrics=TARGET_METRIC_1=VALUE_1
  

替换以下内容:

  • INSTANCE_NAME:与您要修改的读取池关联的实例名称。
  • MAX_NODE_COUNT:您希望读取池使用的读取池节点数上限,例如 10
  • MIN_NODE_COUNT:您希望读取池使用的读取池节点数下限,例如 2
  • COOLDOWN_SECONDS_SCALE_OUT:可选:读取池节点创建或删除之间的冷却时间或等待时间(以秒为单位),例如 180。 冷却时间不得短于 60 秒。默认值为 600 秒。
  • COOLDOWN_SECONDS_SCALE_IN:可选:读取池节点创建或删除之间的冷却时间或等待时间(以秒为单位),例如 180。 冷却时间不得短于 60 秒。默认值为 600 秒。
  • TARGET_METRIC_1:您要使用的目标指标,例如以下指标:
    • AVERAGE_CPU_UTILIZATION
    • AVERAGE_DB_CONNECTIONS
    您必须至少定义这两个可用指标中的一个。
  • VALUE_1:您要为之前指明的目标指标分配的值。在此示例中,为 AVERAGE_DB_CONNECTIONS 目标指标分配值 50

REST v1

如需为现有读取池启用自动扩缩功能,请使用 PATCH 方法。

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_ID:包含实例的 Google Cloud 项目的 ID 或项目编号
  • INSTANCE_ID:与读取池关联的实例的 ID。
  • MAX_NODE_COUNT:您希望读取池使用的读取池节点数上限,例如 10
  • MIN_NODE_COUNT:您希望读取池使用的读取池节点数下限,例如 2
  • COOLDOWN_SECONDS:可选:读取池节点创建或删除之间的冷却时间或等待时间(以秒为单位),例如 180
  • SCALE_IN_DISABLED:可选:用于停用读取池缩容行为。如需停用读取池缩容,请将值设置为 true
  • TARGET_METRIC_1:您要使用的目标指标,例如以下指标:
    • AVERAGE_CPU_UTILIZATION
    • AVERAGE_DB_CONNECTIONS
    您必须至少定义这两个可用指标中的一个。
  • VALUE_1:您要为之前指明的目标指标分配的值。在此示例中,为 AVERAGE_DB_CONNECTIONS 目标指标分配值 50

HTTP 方法和网址:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID

请求 JSON 正文:

{
  "settings": {
    "readPoolAutoScaleConfig": {
      "enabled": true,
      "minNodeCount": MIN_NODE_COUNT,
      "maxNodeCount": MAX_NODE_COUNT,
      "scaleOutCooldownSeconds": COOLDOWN_SECONDS,
      "disableScaleIn": SCALE_IN_DISABLED,
      "targetMetrics": [
        {
          "metric": "TARGET_METRIC_1",
          "targetValue": VALUE_1
        }
      ]
    }
  }
}

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "RUNNING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "2023-06-14T18:48:35.499Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

如需为现有读取池启用自动扩缩功能,请使用 PATCH 方法。

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_ID:包含实例的 Google Cloud 项目的 ID 或项目编号
  • INSTANCE_ID:与读取池关联的实例的 ID。
  • MAX_NODE_COUNT:您希望读取池使用的读取池节点数上限,例如 10
  • MIN_NODE_COUNT:您希望读取池使用的读取池节点数下限,例如 2
  • COOLDOWN_SECONDS:可选:读取池节点创建或删除之间的冷却时间或等待时间(以秒为单位),例如 180
  • SCALE_IN_DISABLED:可选:用于停用读取池缩容行为。如需停用读取池缩容,请将值设置为 true
  • TARGET_METRIC_1:您要使用的目标指标,例如以下指标:
    • AVERAGE_CPU_UTILIZATION
    • AVERAGE_DB_CONNECTIONS
    您必须至少定义这两个可用指标中的一个。
  • VALUE_1:您要为之前指明的目标指标分配的值。在此示例中,为 AVERAGE_DB_CONNECTIONS 目标指标分配值 50

HTTP 方法和网址:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID

请求 JSON 正文:

{
  "settings": {
    "readPoolAutoScaleConfig": {
      "enabled": true,
      "minNodeCount": MIN_NODE_COUNT,
      "maxNodeCount": MAX_NODE_COUNT,
      "scaleOutCooldownSeconds": COOLDOWN_SECONDS,
      "disableScaleIn": SCALE_IN_DISABLED,
      "targetMetrics": [
        {
          "metric": "TARGET_METRIC_1",
          "targetValue": VALUE_1
        }
      ]
    }
  }
}

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "RUNNING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "2023-06-14T18:48:35.499Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

在读取池上停用读取池自动扩缩功能

如需停用读取池自动扩缩功能,请完成以下步骤。

gcloud

如需停用读取池自动扩缩功能,请运行以下命令。

  gcloud sql instances patch INSTANCE_NAME
  --no-auto-scale-enabled
  

替换以下内容:

  • INSTANCE_NAME:与您要修改的读取池关联的实例名称。

REST v1

如需停用读取池自动扩缩功能,请使用 PATCH 方法。

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_ID:包含实例的 Google Cloud 项目的 ID 或项目编号
  • INSTANCE_ID:与读取池关联的实例的 ID。

HTTP 方法和网址:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID

请求 JSON 正文:

{
  "settings":{
    "readPoolAutoScaleConfig":{
      "enabled": false
    }
  }
}

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "RUNNING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "2023-06-14T18:48:35.499Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

如需停用读取池自动扩缩功能,请使用 PATCH 方法。

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_ID:包含实例的 Google Cloud 项目的 ID 或项目编号
  • INSTANCE_ID:与读取池关联的实例的 ID。

HTTP 方法和网址:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID

请求 JSON 正文:

{
  "settings":{
    "readPoolAutoScaleConfig":{
      "enabled": false
    }
  }
}

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "RUNNING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "2023-06-14T18:48:35.499Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

查看指标

使用系统分析洞见查看读取池的相关指标。

对于 AVERAGE_CPU_UTILIZATION,请参阅 CPU 利用率关键指标图表

对于 AVERAGE_DB_CONNECTIONS,请参阅连接总数关键指标图表

监控读取池自动扩缩操作

当满足触发读取池自动扩缩事件的条件时,系统会在实例上运行 UPDATE 操作。您可以在 Google Cloud 控制台中查看此操作。

读取池自动扩缩操作可能需要 10 分钟或更长时间才能应用于实例。现有连接不会转移到新添加的读取池节点,这意味着只有新连接会受到读取池自动扩缩的影响。

在读取池上运行自动扩缩操作期间,您必须等待操作完成,然后才能对读取池或主实例运行其他更新。如果您尝试运行并发请求,可能会收到以下错误消息:

  Operation failed because another operation was already in progress.
  

您可以检查读取池实例,查看节点数的变化:

  gcloud sql instances describe READ_POOL_NAME
  | grep nodeCount
  

替换以下内容:

  • READ_POOL_NAME:您要获取信息的读取池的名称。

系统事件审核日志

您还可以查看与方法 cloudsql.instances.readPoolAutoScale 关联的系统事件审核日志消息,其中包含旧节点数和新节点数。

后续内容