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 seu aplicativo.

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

  • Uso médio da CPU: permite definir o uso médio da CPU em que o pool de leitura vai operar. O pool de leitura aumenta ou diminui a escala 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 atendidas por cada nó. O pool de leitura aumenta ou diminui a escala automaticamente com base no número de conexões de cliente.

Para aplicar essas métricas de destino, também é necessário 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 o número máximo de nós do pool de leitura indicado por ambas.

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

Nome da métrica desejada Limites Métrica pública relacionada
Uso médio da CPU Entre 0,1 e 0,9. O uso médio 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 está relacionado ao valor máximo definido pela flag de banco de dados max_connections. Representa uma média de conexões de clientes 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 gerenciado 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 gerenciadas 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 são atendidas, as operações de escalonamento automático do pool de leitura podem 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 de escalonamento horizontal 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 expansão de escalonamento vertical são aplicadas. Você pode bloquear as operações de redução de escala 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, também é necessário definir a contagem mínima (minNodeCount) e máxima (maxNodeCount) de nós do pool de leitura que você quer usar. Se você ativar o escalonamento automático em um pool de leitura atual, o tamanho dele precisará estar dentro do intervalo definido.

Limitações

Considere as seguintes limitações:

  • O escalonamento automático do pool de leitura aceita no máximo 10 operações de escalonamento automático a cada 24 horas.
  • Se você quiser criar um pool de leitura ou escalonar um pool de leitura atual, aguarde a conclusão das operações anteriores de criação e escalonamento. Isso se aplica a operações associadas ao pool de leitura e 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 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 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: a camada 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 que você quer começar a usar.
  • 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 use, como 5.
  • MIN_NODE_COUNT: o número mínimo de nós do pool de leitura que você quer que o pool use, como 1.
  • TARGET_METRIC_1: a métrica de destino que você quer usar, como as seguintes:
    • AVERAGE_CPU_UTILIZATION
    • 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 destino 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 Google Cloud , siga as etapas nas seções a seguir.

Preparar o Cloud Shell

  1. Inicie o Cloud Shell.
  2. Defina o projeto Google Cloud padrão 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 Google Cloud projeto para conferir os resultados. No console do Google Cloud , navegue até seus recursos na interface 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 fique, 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: a camada 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 o pool use, como 10.
  • MIN_NODE_COUNT: o número mínimo de nós do pool de leitura que você quer que o pool 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 destino AVERAGE_CPU_UTILIZATION, você pode atribuir o valor 0.50.
  • NODE_COUNT: a contagem de nós do pool de leitura 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 fique, 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: a camada 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 o pool use, como 10.
  • MIN_NODE_COUNT: o número mínimo de nós do pool de leitura que você quer que o pool use, como 2.
  • TARGET_METRIC_1: a métrica de destino que você quer usar, como as seguintes:
    • AVERAGE_CPU_UTILIZATION
    • 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. Neste exemplo, para a métrica de destino AVERAGE_CPU_UTILIZATION, atribua o valor 0.50.
  • NODE_COUNT: a contagem de nós do pool de leitura 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

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 atual, 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 associada 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 use, como 10.
  • MIN_NODE_COUNT: o número mínimo de nós do pool de leitura que você quer que o pool use, como 2.
  • COOLDOWN_SECONDS_SCALE_OUT (opcional): o tempo de espera ou de espera em segundos entre a criação ou exclusão de nós do pool de leitura, como 180. É necessário um 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 espera em segundos entre a criação ou exclusão de nós do pool de leitura, como 180. É necessário um 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 as seguintes:
    • AVERAGE_CPU_UTILIZATION
    • 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. Neste exemplo, para a métrica de destino AVERAGE_DB_CONNECTIONS, atribua o valor 50.

REST v1

Para ativar um pool de leitura 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 projeto Google Cloud 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 o pool use, como 10.
  • MIN_NODE_COUNT: o número mínimo de nós do pool de leitura que você quer que o pool use, como 2.
  • COOLDOWN_SECONDS (opcional): o tempo de espera ou de espera em segundos entre a criação ou exclusão de nós do pool de leitura, como 180.
  • SCALE_IN_DISABLED (opcional): permite desativar o comportamento de redução da escala do pool de leitura. Para desativar a redução vertical do pool de leitura, defina o valor como true.
  • TARGET_METRIC_1: a métrica de destino que você quer usar, como as seguintes:
    • AVERAGE_CPU_UTILIZATION
    • 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. Neste exemplo, para a métrica de destino 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 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 projeto Google Cloud 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 o pool use, como 10.
  • MIN_NODE_COUNT: o número mínimo de nós do pool de leitura que você quer que o pool use, como 2.
  • COOLDOWN_SECONDS (opcional): o tempo de espera ou de espera em segundos entre a criação ou exclusão de nós do pool de leitura, como 180.
  • SCALE_IN_DISABLED (opcional): permite desativar o comportamento de redução da escala do pool de leitura. Para desativar a redução vertical do pool de leitura, defina o valor como true.
  • TARGET_METRIC_1: a métrica de destino que você quer usar, como as seguintes:
    • AVERAGE_CPU_UTILIZATION
    • 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. Neste exemplo, para a métrica de destino 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 de um pool de leitura

Siga estas etapas 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 associada 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 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 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 as métricas relevantes do seu pool de leitura.

Para AVERAGE_CPU_UTILIZATION, consulte o gráfico de métricas principais de utilização 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. Isso significa que 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.
  

É possível inspecionar a instância do pool de leitura e conferir 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 conferir a mensagem do registro de auditoria do evento do sistema associada ao método cloudsql.instances.readPoolAutoScale, que contém a contagem de nós antiga e nova.

A seguir