Scalabilità automatica del pool di lettura

La scalabilità automatica del pool di lettura aggiunge o rimuove automaticamente i nodi del pool di lettura nel pool di lettura in base alle esigenze del carico di lavoro della tua applicazione.

Puoi controllare la scalabilità automatica del pool di lettura limitando l'utilizzo medio della CPU nel pool di lettura o limitando il numero di connessioni client autorizzate ad accedere al pool di lettura, utilizzando una delle due metriche target:

  • Utilizzo CPU medio: consente di impostare l'utilizzo medio della CPU entro cui deve operare il pool di lettura. Il pool di lettura viene scalato automaticamente in entrata o in uscita in base all'utilizzo della CPU del carico di lavoro dell'applicazione.
  • Media connessioni database: consente di specificare il numero medio di connessioni al database client che devono essere gestite da ogni nodo. Il pool di lettura viene scalato automaticamente in base al numero di connessioni client.

Per applicare queste metriche target, devi anche impostare un numero minimo e massimo di nodi del pool di lettura.

Per abilitare la scalabilità automatica del pool di lettura, puoi configurare una o entrambe queste metriche di destinazione sull'istanza. Se entrambe le metriche sono attive, Cloud SQL applica il numero massimo di nodi del pool di lettura indicato da entrambe le metriche.

La tabella seguente elenca i limiti per ciascuna metrica target:

Nome della metrica target Limiti Metrica pubblica correlata
Utilizzo CPU medio Tra 0,1 e 0,9. L'utilizzo medio della CPU (cloudsql.googleapis.com/database/cpu/utilization) nei nodi del pool di lettura nel pool di lettura.
Connessioni medie al database Tra 10 e 100.000. Nota: il valore massimo accettabile corrisponde al valore massimo impostato dal flag di database max_connections. Rappresenta una media delle connessioni client di database (cloudsql.googleapis.com/database/network/connections) tra i nodi del pool di lettura nel pool di lettura.

Quando vengono soddisfatte le condizioni per ridimensionare il pool di lettura, le operazioni di scalabilità automatica del pool di lettura possono essere visualizzate dalla console Google Cloud . Tutte le altre operazioni sul pool di lettura e sull'istanza principale sono bloccate fino al completamento della scalabilità automatica del pool di lettura.

Caratteristiche della scalabilità automatica del pool di lettura

Si applicano le seguenti caratteristiche:

  • Le operazioni di riduzione scalano solo un nodo alla volta.
  • Le operazioni di scalabilità orizzontale aggiungono, in parallelo, tutti i nodi necessari.
  • Per impostazione predefinita, vengono applicate sia le operazioni di scale in che di scale out. Puoi facoltativamente bloccare le operazioni di riduzione della scalabilità disattivandole manualmente (disableScaleIn).
  • Per impostazione predefinita, viene applicato un periodo di raffreddamento di 600 secondi tra operazioni di scalabilità automatica successive del pool di lettura. È richiesto un periodo di attesa minimo di 60 secondi indipendentemente dallo scaling in o out.
  • Quando imposti una metrica target, devi anche definire il numero minimo (minNodeCount) e massimo (maxNodeCount) di nodi del pool di lettura che vuoi utilizzare. Se abiliti la scalabilità automatica su un pool di lettura esistente, le dimensioni attuali del pool di lettura devono rientrare nell'intervallo impostato.

Limitazioni

Si applicano le seguenti limitazioni:

  • La scalabilità automatica del pool di lettura supporta un massimo di 10 operazioni di scalabilità automatica ogni 24 ore.
  • Se vuoi creare un nuovo pool di lettura o scalare un pool di lettura esistente, devi attendere il completamento delle operazioni di creazione e scalabilità precedenti. Ciò vale per le operazioni associate al pool di lettura e ad altri pool di lettura associati alla stessa istanza principale. Se provi a eseguire operazioni simultanee, potresti ricevere il seguente messaggio di errore:
    Operation failed because another operation was already in progress.
    

Prima di iniziare

Crea un pool di lettura con la scalabilità automatica abilitata

Se specifichi un valore target di 0,50 per AVERAGE_CPU_UTILIZATION, i nodi del pool di lettura verranno aggiunti o rimossi dal pool di lettura per mantenere l'utilizzo medio della CPU nel pool di lettura pari a 0,50 o inferiore.

gcloud

Per creare un pool di lettura con la scalabilità automatica abilitata, esegui questo comando:

  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
  

Sostituisci quanto segue:

  • READ_POOL_NAME: il nome che vuoi assegnare al pool di lettura.
  • MACHINE_TIER: il livello della macchina che vuoi utilizzare, ad esempio db-perf-optimized-N-2.
  • NODE_COUNT: il numero di nodi del pool di lettura con cui vuoi iniziare.
  • DATABASE_VERSION: la versione del database che vuoi utilizzare, ad esempio POSTGRES_16.
  • PRIMARY_INSTANCE_NAME: il nome dell'istanza primaria che vuoi utilizzare.
  • REGION: la regione che vuoi utilizzare, ad esempio us-east1.
  • NETWORK_NAME: il nome della rete che vuoi utilizzare.
  • MAX_NODE_COUNT: il numero massimo di nodi del pool di lettura che vuoi che il pool di lettura utilizzi, ad esempio 5.
  • MIN_NODE_COUNT: il numero minimo di nodi del pool di lettura che vuoi che il pool di lettura utilizzi, ad esempio 1.
  • TARGET_METRIC_1: la metrica target che vuoi utilizzare, ad esempio la seguente:
    • AVERAGE_CPU_UTILIZATION
    • AVERAGE_DB_CONNECTIONS
    Devi definire almeno una delle due metriche disponibili.
  • VALUE_1: il valore che vuoi assegnare alla metrica target che hai indicato in precedenza. Ad esempio, per la metrica target AVERAGE_CPU_UTILIZATION, potresti assegnare il valore 0.50.

Terraform

Per creare un pool di lettura con la scalabilità automatica abilitata, utilizza una risorsa Terraform.

L'esempio seguente include le risorse per l'istanza principale e il pool di lettura.


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

Applica le modifiche

Per applicare la configurazione di Terraform in un progetto Google Cloud , completa i passaggi descritti nelle sezioni seguenti.

Prepara Cloud Shell

  1. Avvia Cloud Shell.
  2. Imposta il progetto Google Cloud predefinito in cui vuoi applicare le configurazioni Terraform.

    Devi eseguire questo comando una sola volta per progetto e puoi eseguirlo in qualsiasi directory.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Le variabili di ambiente vengono sostituite se imposti valori espliciti nel file di configurazione Terraform.

Preparare la directory

Ogni file di configurazione Terraform deve avere la propria directory (chiamata anche modulo radice).

  1. In Cloud Shell, crea una directory e un nuovo file al suo interno. Il nome file deve avere l'estensione .tf, ad esempio main.tf. In questo tutorial, il file viene denominato main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Se stai seguendo un tutorial, puoi copiare il codice campione in ogni sezione o passaggio.

    Copia il codice campione nel file main.tf appena creato.

    (Facoltativo) Copia il codice da GitHub. Questa operazione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.

  3. Rivedi e modifica i parametri di esempio da applicare al tuo ambiente.
  4. Salva le modifiche.
  5. Inizializza Terraform. Devi effettuare questa operazione una sola volta per directory.
    terraform init

    (Facoltativo) Per utilizzare l'ultima versione del provider Google, includi l'opzione -upgrade:

    terraform init -upgrade

Applica le modifiche

  1. Rivedi la configurazione e verifica che le risorse che Terraform creerà o aggiornerà corrispondano alle tue aspettative:
    terraform plan

    Apporta le correzioni necessarie alla configurazione.

  2. Applica la configurazione Terraform eseguendo questo comando e inserendo yes al prompt:
    terraform apply

    Attendi che Terraform visualizzi il messaggio "Apply complete!".

  3. Apri il tuo Google Cloud progetto per visualizzare i risultati. Nella console Google Cloud , vai alle risorse nell'interfaccia utente per assicurarti che Terraform le abbia create o aggiornate.

Elimina le modifiche

Per eliminare le modifiche:

  1. Per disattivare la protezione dall'eliminazione, nel file di configurazione Terraform imposta l'argomento deletion_protection su false.
    deletion_protection =  "false"
  2. Applica la configurazione Terraform aggiornata eseguendo questo comando e inserendo yes al prompt:
    terraform apply
  1. Rimuovi le risorse applicate in precedenza con la configurazione Terraform eseguendo il comando seguente e inserendo yes al prompt:

    terraform destroy

REST v1

Per creare un pool di lettura con la scalabilità automatica abilitata, utilizza una richiesta POST con il metodo instances:insert.

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • READ_POOL_NAME: il nome che vuoi assegnare al pool di lettura.
  • REGION: la regione in cui vuoi che risieda l'istanza, ad esempio us-central1.
  • PRIMARY_INSTANCE_ID: l'ID dell'istanza primaria che vuoi utilizzare.
  • PROJECT_ID: l'ID del progetto in cui vuoi che si trovi il pool di lettura, ad esempio my-project-name.
  • DATABASE_VERSION: la versione del database che vuoi utilizzare, ad esempio MYSQL_8_0_37.
  • MACHINE_TIER: il livello della macchina che vuoi utilizzare, ad esempio db-perf-optimized-N-2.
  • FULL_NETWORK_NAME: il nome della rete che vuoi utilizzare.
  • MAX_NODE_COUNT: il numero massimo di nodi del pool di lettura che vuoi che il pool di lettura utilizzi, ad esempio 10.
  • MIN_NODE_COUNT: il numero minimo di nodi del pool di lettura che vuoi che il pool di lettura utilizzi, ad esempio 2.
  • TARGET_METRIC_1: la metrica target che vuoi utilizzare, ad esempio AVERAGE_CPU_UTILIZATION o AVERAGE_DB_CONNECTIONS. Devi definire almeno una delle due metriche disponibili.
  • VALUE_1: il valore che vuoi assegnare alla metrica target che hai indicato in precedenza. Ad esempio, per la metrica target AVERAGE_CPU_UTILIZATION, potresti assegnare il valore 0.50.
  • NODE_COUNT: il numero di nodi del pool di lettura con cui vuoi iniziare, ad esempio 3.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

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

Per creare un pool di lettura con la scalabilità automatica abilitata, utilizza una richiesta POST con il metodo instances:insert.

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • READ_POOL_NAME: il nome che vuoi assegnare al pool di lettura.
  • REGION: la regione in cui vuoi che risieda l'istanza, ad esempio us-central1.
  • PRIMARY_INSTANCE_ID: l'ID dell'istanza primaria che vuoi utilizzare.
  • PROJECT_ID: l'ID del progetto in cui vuoi che si trovi il pool di lettura, ad esempio my-project-name.
  • DATABASE_VERSION: la versione del database che vuoi utilizzare, ad esempio MYSQL_8_0_37.
  • MACHINE_TIER: il livello della macchina che vuoi utilizzare, ad esempio db-perf-optimized-N-2.
  • FULL_NETWORK_NAME: il nome della rete che vuoi utilizzare.
  • MAX_NODE_COUNT: il numero massimo di nodi del pool di lettura che vuoi che il pool di lettura utilizzi, ad esempio 10.
  • MIN_NODE_COUNT: il numero minimo di nodi del pool di lettura che vuoi che il pool di lettura utilizzi, ad esempio 2.
  • TARGET_METRIC_1: la metrica target che vuoi utilizzare, ad esempio le seguenti:
    • AVERAGE_CPU_UTILIZATION
    • AVERAGE_DB_CONNECTIONS
    Devi definire almeno una delle due metriche disponibili.
  • VALUE_1: il valore che vuoi assegnare alla metrica target che hai indicato in precedenza. In questo esempio, per la metrica target AVERAGE_CPU_UTILIZATION, assegna il valore 0.50.
  • NODE_COUNT: il numero di nodi del pool di lettura con cui vuoi iniziare, ad esempio 3.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

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

Abilitare la scalabilità automatica del pool di lettura su un pool di lettura esistente

Se hai già creato un pool di lettura, puoi abilitare la scalabilità automatica indicando la configurazione di scalabilità automatica che vuoi utilizzare.

Ad esempio, se specifichi un valore target di 50 per AVERAGE_DB_CONNECTIONS, i nodi verranno aggiunti o rimossi dal pool di lettura per mantenere le connessioni medie al database nel pool pari a 50 o meno.

gcloud

Per abilitare il pool di lettura con scalabilità automatica su un pool di lettura esistente, esegui il seguente comando.

  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
  

Sostituisci quanto segue:

  • INSTANCE_NAME: il nome dell'istanza associata al pool di lettura che vuoi modificare.
  • MAX_NODE_COUNT: il numero massimo di nodi del pool di lettura che vuoi che il pool di lettura utilizzi, ad esempio 10.
  • MIN_NODE_COUNT: il numero minimo di nodi del pool di lettura che vuoi che il pool di lettura utilizzi, ad esempio 2.
  • COOLDOWN_SECONDS_SCALE_OUT: (Facoltativo) il periodo di raffreddamento o di attesa in secondi tra la creazione o l'eliminazione dei nodi del pool di lettura, ad esempio 180. È richiesto un periodo di attesa minimo di 60 secondi. Il valore predefinito è 600 secondi.
  • COOLDOWN_SECONDS_SCALE_IN: (Facoltativo) il periodo di raffreddamento o di attesa in secondi tra la creazione o l'eliminazione dei nodi del pool di lettura, ad esempio 180. È richiesto un periodo di attesa minimo di 60 secondi. Il valore predefinito è 600 secondi.
  • TARGET_METRIC_1: la metrica target che vuoi utilizzare, ad esempio le seguenti:
    • AVERAGE_CPU_UTILIZATION
    • AVERAGE_DB_CONNECTIONS
    Devi definire almeno una delle due metriche disponibili.
  • VALUE_1: il valore che vuoi assegnare alla metrica target che hai indicato in precedenza. In questo esempio, per la metrica target AVERAGE_DB_CONNECTIONS, assegna il valore 50.

REST v1

Per abilitare un pool di lettura esistente con scalabilità automatica, utilizza il metodo PATCH.

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_ID: l'ID o il numero di progetto del progetto Google Cloud che contiene l'istanza.
  • INSTANCE_ID: l'ID dell'istanza associata al pool di lettura.
  • MAX_NODE_COUNT: il numero massimo di nodi del pool di lettura che vuoi che il pool di lettura utilizzi, ad esempio 10.
  • MIN_NODE_COUNT: il numero minimo di nodi del pool di lettura che vuoi che il pool di lettura utilizzi, ad esempio 2.
  • COOLDOWN_SECONDS: (Facoltativo) il periodo di raffreddamento o di attesa in secondi tra la creazione o l'eliminazione dei nodi del pool di lettura, ad esempio 180.
  • SCALE_IN_DISABLED: (Facoltativo) consente di disattivare il comportamento di riduzione del pool di lettura. Per disattivare la riduzione delle istanze del pool di lettura, imposta il valore su true.
  • TARGET_METRIC_1: la metrica target che vuoi utilizzare, ad esempio le seguenti:
    • AVERAGE_CPU_UTILIZATION
    • AVERAGE_DB_CONNECTIONS
    Devi definire almeno una delle due metriche disponibili.
  • VALUE_1: il valore che vuoi assegnare alla metrica target che hai indicato in precedenza. In questo esempio, per la metrica target AVERAGE_DB_CONNECTIONS, assegna il valore 50.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

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

Per abilitare un pool di lettura esistente con scalabilità automatica, utilizza il metodo PATCH.

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_ID: l'ID o il numero di progetto del progetto Google Cloud che contiene l'istanza.
  • INSTANCE_ID: l'ID dell'istanza associata al pool di lettura.
  • MAX_NODE_COUNT: il numero massimo di nodi del pool di lettura che vuoi che il pool di lettura utilizzi, ad esempio 10.
  • MIN_NODE_COUNT: il numero minimo di nodi del pool di lettura che vuoi che il pool di lettura utilizzi, ad esempio 2.
  • COOLDOWN_SECONDS: (Facoltativo) il periodo di raffreddamento o di attesa in secondi tra la creazione o l'eliminazione dei nodi del pool di lettura, ad esempio 180.
  • SCALE_IN_DISABLED: (Facoltativo) consente di disattivare il comportamento di riduzione del pool di lettura. Per disattivare la riduzione delle istanze del pool di lettura, imposta il valore su true.
  • TARGET_METRIC_1: la metrica target che vuoi utilizzare, ad esempio le seguenti:
    • AVERAGE_CPU_UTILIZATION
    • AVERAGE_DB_CONNECTIONS
    Devi definire almeno una delle due metriche disponibili.
  • VALUE_1: il valore che vuoi assegnare alla metrica target che hai indicato in precedenza. In questo esempio, per la metrica target AVERAGE_DB_CONNECTIONS, assegna il valore 50.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

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

Disabilita la scalabilità automatica del pool di lettura su un pool di lettura

Per disattivare lo scalabilità automatica del pool di lettura:

gcloud

Per disattivare la scalabilità automatica del pool di lettura, esegui questo comando.

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

Sostituisci quanto segue:

  • INSTANCE_NAME: il nome dell'istanza associata al pool di lettura che vuoi modificare.

REST v1

Per disattivare la scalabilità automatica del pool di lettura, utilizza il metodo PATCH.

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_ID: l'ID o il numero di progetto del progetto Google Cloud che contiene l'istanza.
  • INSTANCE_ID: l'ID dell'istanza associata al pool di lettura.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

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

Per disattivare la scalabilità automatica del pool di lettura, utilizza il metodo PATCH.

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_ID: l'ID o il numero di progetto del progetto Google Cloud che contiene l'istanza.
  • INSTANCE_ID: l'ID dell'istanza associata al pool di lettura.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

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

Visualizza metriche

Utilizza approfondimenti sul sistema per visualizzare le metriche pertinenti per il tuo pool di lettura.

Per AVERAGE_CPU_UTILIZATION, consulta il grafico della metrica chiave Utilizzo CPU.

Per AVERAGE_DB_CONNECTIONS, consulta il grafico delle metriche chiave Connessioni totali.

Monitora le operazioni di scalabilità automatica del pool di lettura

Quando vengono soddisfatte le condizioni per attivare un evento di scalabilità automatica del pool di lettura, viene eseguita un'operazione UPDATE sull'istanza. Puoi visualizzare questa operazione dalla console Google Cloud .

Le operazioni di scalabilità automatica del pool di lettura possono richiedere 10 minuti o più per essere applicate all'istanza. Le connessioni esistenti non verranno trasferite ai nodi del pool di lettura appena aggiunto, il che significa che solo le nuove connessioni saranno interessate dalla scalabilità automatica del pool di lettura.

Mentre l'operazione di scalabilità automatica è in esecuzione sul pool di lettura, devi attendere che termini prima di eseguire altri aggiornamenti sul pool di lettura o sull'istanza principale. Se provi a eseguire richieste simultanee, potresti ricevere il seguente messaggio di errore:

  Operation failed because another operation was already in progress.
  

Puoi esaminare l'istanza del pool di lettura e vedere la modifica del conteggio dei nodi:

  gcloud sql instances describe READ_POOL_NAME
  | grep nodeCount
  

Sostituisci quanto segue:

  • READ_POOL_NAME: il nome del pool di lettura per cui vuoi ottenere informazioni.

Audit log degli eventi di sistema

Puoi anche visualizzare il messaggio del log di controllo Evento di sistema associato al metodo cloudsql.instances.readPoolAutoScale, che contiene il conteggio dei nodi precedente e quello nuovo.

Passaggi successivi