Escalonamento automático do pool de leitura

O escalonamento automático do pool de leitura adiciona ou remove automaticamente nós do pool de leitura no pool de leitura com base nas necessidades de carga de trabalho do aplicativo.

É possível controlar o escalonamento automático do pool de leitura limitando a utilização média da CPU em todo o pool de leitura ou limitando o número de conexões de cliente com acesso permitido ao pool de leitura, usando uma das duas métricas de destino:

  • Uso médio da CPU: permite definir o uso médio da CPU em que você quer que o pool de leitura opere. O pool de leitura é escalonado automaticamente com base no uso da CPU da carga de trabalho do aplicativo.
  • Média de conexões de banco de dados: permite especificar o número médio de conexões de banco de dados do cliente que devem ser disponibilizadas por cada nó. O pool de leitura é escalonado automaticamente com base no número de conexões de cliente.

Para aplicar essas métricas de destino, você também precisa definir uma contagem mínima e máxima de nós do pool de leitura.

Para ativar o escalonamento automático do pool de leitura, configure uma ou ambas as métricas de destino na instância. Se as duas métricas estiverem ativas, o Cloud SQL vai aplicar a contagem máxima de nós do pool de leitura indicada por ambas.

A tabela a seguir lista os limites de cada métrica de destino:

Nome da métrica de destino Limites Métrica pública relacionada
Uso médio da CPU Entre 0,1 e 0,9. A utilização média da CPU (cloudsql.googleapis.com/database/cpu/utilization) em todos os nós do pool de leitura.
Média de conexões de banco de dados Entre 10 e 262.142. Observação: o valor máximo aceitável se correlaciona com o valor máximo definido pela flag de banco de dados max_connections. Representa uma média de conexões de cliente do banco de dados (cloudsql.googleapis.com/database/postgresql/num_backends) em todos os nós do pool de leitura. Observação: quando o pool de conexões gerenciadas está ativado na instância, as conexões individuais que compõem um pool de conexões não são contadas separadamente e incluídas na métrica AVERAGE_DB_CONNECTIONS. Se o pool de conexões gerenciado estiver ativado, recomendamos usar apenas a métrica AVERAGE_CPU_UTILIZATION para controlar o escalonamento automático do pool de leitura.

Quando as condições para redimensionar o pool de leitura forem atendidas, as operações de escalonamento automático do pool de leitura poderão ser visualizadas no console do Google Cloud . Todas as outras operações no pool de leitura e na instância principal são bloqueadas até que o escalonamento automático do pool de leitura seja concluído.

Características do escalonamento automático do pool de leitura

As seguintes características se aplicam:

  • As operações de redução removem apenas um nó por vez.
  • As operações de escalonamento horizontal adicionam, em paralelo, quantos nós forem necessários.
  • Por padrão, as operações de redução e aumento de escalonamento horizontal são aplicadas. Se quiser, você pode bloquear as operações de redução de escala horizontal desativando-as manualmente (disableScaleIn).
  • Por padrão, um período de espera de 600 segundos é aplicado entre operações sucessivas de escalonamento automático do pool de leitura. É necessário um período de espera mínimo de 60 segundos, seja para escalonamento horizontal ou vertical.
  • Ao definir uma métrica de destino, você também precisa definir a contagem mínima (minNodeCount) e máxima (maxNodeCount) de nós do pool de leitura que quer usar. Se você ativar o escalonamento automático em um pool de leitura atual, o tamanho atual do pool de leitura precisará estar dentro do intervalo definido.

Limitações

Considere as seguintes limitações:

  • Se você quiser criar um novo pool de leitura ou escalonar um pool de leitura atual, aguarde a conclusão das operações de criação e escalonamento anteriores. Isso se aplica às operações associadas ao pool de leitura, bem como a outros pools de leitura associados à mesma instância principal. Se você tentar executar operações simultâneas, poderá receber a seguinte mensagem de erro:
    Operation failed because another operation was already in progress.
    

Antes de começar

Criar um pool de leitura com o escalonamento automático ativado

Se você especificar um valor de destino de 0,50 para AVERAGE_CPU_UTILIZATION, os nós do pool de leitura serão adicionados ou removidos do pool de leitura para manter a utilização média da CPU em todo o pool de leitura em 0,50 ou menos.

gcloud

Para criar um pool de leitura com o escalonamento automático ativado, execute o seguinte:

  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
  

Substitua:

  • READ_POOL_NAME: o nome que você quer atribuir ao pool de leitura.
  • MACHINE_TIER: o nível de máquina que você quer usar, como db-perf-optimized-N-2.
  • NODE_COUNT: o número de nós do pool de leitura com que você quer começar.
  • DATABASE_VERSION: a versão do banco de dados que você quer usar, como POSTGRES_16.
  • PRIMARY_INSTANCE_NAME: o nome da instância principal que você quer usar.
  • REGION: a região que você quer usar, como us-east1.
  • NETWORK_NAME: o nome da rede que você quer usar.
  • MAX_NODE_COUNT: o número máximo de nós do pool de leitura que você quer que o pool de leitura use, como 5.
  • MIN_NODE_COUNT: o número mínimo de nós do pool de leitura que você quer que o pool de leitura use, como 1.
  • TARGET_METRIC_1: a métrica de destino que você quer usar, como:
    • AVERAGE_CPU_UTILIZATION
    • AVERAGE_DB_CONNECTIONS
    É preciso definir pelo menos uma das duas métricas disponíveis.
  • VALUE_1: o valor que você quer atribuir à métrica de destino indicada anteriormente. Por exemplo, para a métrica de segmentação AVERAGE_CPU_UTILIZATION, você pode atribuir o valor 0.50.

Terraform

Para criar um pool de leitura com o escalonamento automático ativado, use um recurso do Terraform.

O exemplo a seguir inclui recursos para a instância principal e o pool de leitura.


resource "google_sql_database_instance" "primary" {
  name             = "postgres-primary"
  database_version = "POSTGRES_17"
  region           = "europe-west4"

  instance_type = "CLOUD_SQL_INSTANCE"

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

    backup_configuration {
      enabled = true
    }

    ip_configuration {
      ipv4_enabled = true
    }
  }
}

resource "google_sql_database_instance" "replica" {
  name             = "postgres-replica"
  database_version = "POSTGRES_17"
  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
      }
    }
  }
}

Aplique as alterações

Para aplicar a configuração do Terraform em um projeto do Google Cloud , conclua as etapas nas seções a seguir.

Preparar o Cloud Shell

  1. Inicie o Cloud Shell.
  2. Defina o projeto padrão do Google Cloud em que você quer aplicar as configurações do Terraform.

    Você só precisa executar esse comando uma vez por projeto, e ele pode ser executado em qualquer diretório.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    As variáveis de ambiente serão substituídas se você definir valores explícitos no arquivo de configuração do Terraform.

Preparar o diretório

Cada arquivo de configuração do Terraform precisa ter o próprio diretório, também chamado de módulo raiz.

  1. No Cloud Shell, crie um diretório e um novo arquivo dentro dele. O nome do arquivo precisa ter a extensão .tf, por exemplo, main.tf. Neste tutorial, o arquivo é chamado de main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Se você estiver seguindo um tutorial, poderá copiar o exemplo de código em cada seção ou etapa.

    Copie o exemplo de código no main.tf recém-criado.

    Se preferir, copie o código do GitHub. Isso é recomendado quando o snippet do Terraform faz parte de uma solução de ponta a ponta.

  3. Revise e modifique os parâmetros de amostra para aplicar ao seu ambiente.
  4. Salve as alterações.
  5. Inicialize o Terraform. Você só precisa fazer isso uma vez por diretório.
    terraform init

    Opcionalmente, para usar a versão mais recente do provedor do Google, inclua a opção -upgrade:

    terraform init -upgrade

Aplique as alterações

  1. Revise a configuração e verifique se os recursos que o Terraform vai criar ou atualizar correspondem às suas expectativas:
    terraform plan

    Faça as correções necessárias na configuração.

  2. Para aplicar a configuração do Terraform, execute o comando a seguir e digite yes no prompt:
    terraform apply

    Aguarde até que o Terraform exiba a mensagem "Apply complete!".

  3. Abra seu projeto do Google Cloud para ver os resultados. No console do Google Cloud , navegue até seus recursos na UI para verificar se foram criados ou atualizados pelo Terraform.

Excluir as alterações

Para excluir as mudanças, faça o seguinte:

  1. Para desativar a proteção contra exclusão, no arquivo de configuração do Terraform, defina o argumento deletion_protection como false.
    deletion_protection =  "false"
  2. Para aplicar a configuração atualizada do Terraform, execute o comando a seguir e digite yes no prompt:
    terraform apply
  1. Remova os recursos aplicados anteriormente com a configuração do Terraform executando o seguinte comando e inserindo yes no prompt:

    terraform destroy

REST v1

Para criar um pool de leitura com o escalonamento automático ativado, use uma solicitação POST com o método instances:insert.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • READ_POOL_NAME: o nome que você quer atribuir ao pool de leitura.
  • REGION: a região em que você quer que a instância resida, como us-central1.
  • PRIMARY_INSTANCE_ID: o ID da instância principal que você quer usar.
  • PROJECT_ID: o ID do projeto em que você quer que o pool de leitura esteja localizado, como my-project-name.
  • DATABASE_VERSION: a versão do banco de dados que você quer usar, como POSTGRES_16.
  • MACHINE_TIER: o nível de máquina que você quer usar, como db-perf-optimized-N-2.
  • FULL_NETWORK_NAME: o nome da rede que você quer usar.
  • MAX_NODE_COUNT: o número máximo de nós do pool de leitura que você quer que a instância do pool de leitura use, como 10.
  • MIN_NODE_COUNT: o número mínimo de nós do pool de leitura que você quer que o pool de leitura use, como 2.
  • TARGET_METRIC_1: a métrica de destino que você quer usar, como AVERAGE_CPU_UTILIZATION ou AVERAGE_DB_CONNECTIONS. É necessário definir pelo menos uma das duas métricas disponíveis.
  • VALUE_1: o valor que você quer atribuir à métrica de destino indicada anteriormente. Por exemplo, para a métrica de meta AVERAGE_CPU_UTILIZATION, você pode atribuir o valor 0.50.
  • NODE_COUNT: a contagem de nós do pool de leitura com que você quer começar, como 3.

Método HTTP e URL:

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

Corpo JSON da solicitação:

{
  "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
}

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

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

Para criar um pool de leitura com o escalonamento automático ativado, use uma solicitação POST com o método instances:insert.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • READ_POOL_NAME: o nome que você quer atribuir ao pool de leitura.
  • REGION: a região em que você quer que a instância resida, como us-central1.
  • PRIMARY_INSTANCE_ID: o ID da instância principal que você quer usar.
  • PROJECT_ID: o ID do projeto em que você quer que o pool de leitura esteja localizado, como my-project-name.
  • DATABASE_VERSION: a versão do banco de dados que você quer usar, como POSTGRES_16.
  • MACHINE_TIER: o nível de máquina que você quer usar, como db-perf-optimized-N-2.
  • FULL_NETWORK_NAME: o nome da rede que você quer usar.
  • MAX_NODE_COUNT: o número máximo de nós do pool de leitura que você quer que a instância do pool de leitura use, como 10.
  • MIN_NODE_COUNT: o número mínimo de nós do pool de leitura que você quer que o pool de leitura use, como 2.
  • TARGET_METRIC_1: a métrica de destino que você quer usar, como:
    • AVERAGE_CPU_UTILIZATION
    • AVERAGE_DB_CONNECTIONS
    É preciso definir pelo menos uma das duas métricas disponíveis.
  • VALUE_1: o valor que você quer atribuir à métrica de destino indicada anteriormente. Neste exemplo, para a métrica de segmentação AVERAGE_CPU_UTILIZATION, atribua o valor 0.50.
  • NODE_COUNT: a contagem de nós do pool de leitura com que você quer começar, como 3.

Método HTTP e URL:

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

Corpo JSON da solicitação:

{
  "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
}

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

{
  "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"
}

Ativar o escalonamento automático de um pool de leitura atual

Se você já tiver um pool de leitura criado, poderá ativar o escalonamento automático indicando a configuração que quer usar.

Por exemplo, se você especificar um valor de destino de 50 para AVERAGE_DB_CONNECTIONS, os nós serão adicionados ou removidos do pool de leitura para manter as conexões médias do banco de dados em todo o pool em 50 ou menos.

gcloud

Para ativar o pool de leitura com escalonamento automático em um pool de leitura, execute o comando a seguir.

  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
  

Substitua:

  • INSTANCE_NAME: o nome da instância associado ao pool de leitura que você quer modificar.
  • MAX_NODE_COUNT: o número máximo de nós do pool de leitura que você quer que o pool de leitura use, como 10.
  • MIN_NODE_COUNT: o número mínimo de nós do pool de leitura que você quer que o pool de leitura use, como 2.
  • COOLDOWN_SECONDS_SCALE_OUT: opcional: o tempo de espera ou de resfriamento em segundos entre a criação ou exclusão do nó do pool de leitura, como 180. O período de espera mínimo é de 60 segundos. O valor padrão é de 600 segundos.
  • COOLDOWN_SECONDS_SCALE_IN: opcional: o tempo de espera ou de resfriamento em segundos entre a criação ou exclusão do nó do pool de leitura, como 180. O período de espera mínimo é de 60 segundos. O valor padrão é de 600 segundos.
  • TARGET_METRIC_1: a métrica de destino que você quer usar, como:
    • AVERAGE_CPU_UTILIZATION
    • AVERAGE_DB_CONNECTIONS
    É preciso definir pelo menos uma das duas métricas disponíveis.
  • VALUE_1: o valor que você quer atribuir à métrica de destino indicada anteriormente. Neste exemplo, para a métrica de segmentação AVERAGE_DB_CONNECTIONS, atribua o valor 50.

REST v1

Para ativar um pool de leitura atual com escalonamento automático, use o método PATCH.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: o ID ou número do projeto do Google Cloud projeto que contém a instância.
  • INSTANCE_ID: o ID da instância associada ao pool de leitura.
  • MAX_NODE_COUNT: o número máximo de nós do pool de leitura que você quer que a instância do pool de leitura use, como 10.
  • MIN_NODE_COUNT: o número mínimo de nós do pool de leitura que você quer que o pool de leitura use, como 2.
  • COOLDOWN_SECONDS: opcional: o tempo de espera ou de resfriamento em segundos entre a criação ou exclusão do nó do pool de leitura, como 180.
  • SCALE_IN_DISABLED: opcional: permite desativar o comportamento de redução de escala horizontal do pool de leitura. Para desativar a redução de escala vertical do pool de leitura, defina o valor como true.
  • TARGET_METRIC_1: a métrica de destino que você quer usar, como:
    • AVERAGE_CPU_UTILIZATION
    • AVERAGE_DB_CONNECTIONS
    É preciso definir pelo menos uma das duas métricas disponíveis.
  • VALUE_1: o valor que você quer atribuir à métrica de destino indicada anteriormente. Neste exemplo, para a métrica de segmentação AVERAGE_DB_CONNECTIONS, atribua o valor 50.

Método HTTP e URL:

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

Corpo JSON da solicitação:

{
  "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
        }
      ]
    }
  }
}

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

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

Para ativar um pool de leitura atual com escalonamento automático, use o método PATCH.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: o ID ou número do projeto do Google Cloud projeto que contém a instância.
  • INSTANCE_ID: o ID da instância associada ao pool de leitura.
  • MAX_NODE_COUNT: o número máximo de nós do pool de leitura que você quer que a instância do pool de leitura use, como 10.
  • MIN_NODE_COUNT: o número mínimo de nós do pool de leitura que você quer que o pool de leitura use, como 2.
  • COOLDOWN_SECONDS: opcional: o tempo de espera ou de resfriamento em segundos entre a criação ou exclusão do nó do pool de leitura, como 180.
  • SCALE_IN_DISABLED: opcional: permite desativar o comportamento de redução de escala horizontal do pool de leitura. Para desativar a redução de escala vertical do pool de leitura, defina o valor como true.
  • TARGET_METRIC_1: a métrica de destino que você quer usar, como:
    • AVERAGE_CPU_UTILIZATION
    • AVERAGE_DB_CONNECTIONS
    É preciso definir pelo menos uma das duas métricas disponíveis.
  • VALUE_1: o valor que você quer atribuir à métrica de destino indicada anteriormente. Neste exemplo, para a métrica de segmentação AVERAGE_DB_CONNECTIONS, atribua o valor 50.

Método HTTP e URL:

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

Corpo JSON da solicitação:

{
  "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
        }
      ]
    }
  }
}

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

{
  "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"
}

Desativar o escalonamento automático do pool de leitura em um pool de leitura

Siga as etapas abaixo para desativar o escalonamento automático do pool de leitura.

gcloud

Para desativar o escalonamento automático do pool de leitura, execute o comando a seguir.

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

Substitua:

  • INSTANCE_NAME: o nome da instância associado ao pool de leitura que você quer modificar.

REST v1

Para desativar o escalonamento automático do pool de leitura, use o método PATCH.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: o ID ou número do projeto do projeto do Google Cloud que contém a instância.
  • INSTANCE_ID: o ID da instância associada ao pool de leitura.

Método HTTP e URL:

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

Corpo JSON da solicitação:

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

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

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

Para desativar o escalonamento automático do pool de leitura, use o método PATCH.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: o ID ou número do projeto do projeto do Google Cloud que contém a instância.
  • INSTANCE_ID: o ID da instância associada ao pool de leitura.

Método HTTP e URL:

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

Corpo JSON da solicitação:

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

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

{
  "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"
}

Ver métricas

Use os insights do sistema para conferir métricas relevantes para o pool de leitura.

Para AVERAGE_CPU_UTILIZATION, consulte o gráfico de métricas principais de uso da CPU.

Para AVERAGE_DB_CONNECTIONS, consulte o gráfico de métricas principais Conexões por banco de dados.

Monitorar operações de escalonamento automático do pool de leitura

Quando as condições para acionar um evento de escalonamento automático do pool de leitura são atendidas, uma operação UPDATE é executada na instância. É possível conferir essa operação no console do Google Cloud .

As operações de escalonamento automático do pool de leitura podem levar 10 minutos ou mais para serem aplicadas à instância. As conexões atuais não serão transferidas para os nós do pool de leitura recém-adicionados, ou seja, apenas as novas conexões serão afetadas pelo escalonamento automático do pool de leitura.

Enquanto a operação de escalonamento automático estiver em execução no pool de leitura, aguarde a conclusão dela antes de executar outras atualizações no pool de leitura ou na instância principal. Se você tentar executar solicitações simultâneas, poderá receber a seguinte mensagem de erro:

  Operation failed because another operation was already in progress.
  

Inspecione a instância do pool de leitura e veja a mudança na contagem de nós:

  gcloud sql instances describe READ_POOL_NAME
  | grep nodeCount
  

Substitua:

  • READ_POOL_NAME: o nome do pool de leitura sobre o qual você quer receber informações.

Registros de auditoria de evento do sistema

Também é possível ver a mensagem do registro de auditoria de evento do sistema associada ao método cloudsql.instances.readPoolAutoScale, que contém a contagem de nós antiga e nova.

A seguir