Penskalaan otomatis pool baca

Penskalaan otomatis kumpulan baca akan otomatis menambahkan atau menghapus node kumpulan baca di kumpulan baca berdasarkan kebutuhan beban kerja aplikasi Anda.

Anda dapat mengontrol penskalaan otomatis kumpulan baca dengan membatasi penggunaan CPU rata-rata di seluruh kumpulan baca atau dengan membatasi jumlah koneksi klien yang diizinkan mengakses kumpulan baca, menggunakan salah satu dari dua metrik target:

  • Penggunaan CPU rata-rata: memungkinkan Anda menetapkan penggunaan CPU rata-rata yang diinginkan untuk pengoperasian kumpulan baca. Kumpulan baca secara otomatis melakukan penskalaan masuk atau keluar berdasarkan penggunaan CPU beban kerja aplikasi Anda.
  • Koneksi database rata-rata: memungkinkan Anda menentukan jumlah rata-rata koneksi database klien yang harus ditayangkan oleh setiap node. Kumpulan baca secara otomatis menskalakan masuk atau keluar berdasarkan jumlah koneksi klien.

Untuk menerapkan metrik target ini, Anda juga harus menetapkan jumlah node minimum dan maksimum pool baca.

Untuk mengaktifkan penskalaan otomatis kumpulan baca, Anda dapat mengonfigurasi salah satu atau kedua metrik target ini di instance. Jika kedua metrik aktif, Cloud SQL menerapkan jumlah node pool baca maksimum yang ditunjukkan oleh kedua metrik.

Tabel berikut mencantumkan batas untuk setiap metrik target:

Nama metrik target Batas Metrik publik terkait
Pemakaian CPU rata-rata Antara 0,1 dan 0,9. Penggunaan CPU rata-rata (cloudsql.googleapis.com/database/cpu/utilization) di seluruh node kumpulan baca di kumpulan baca.
Koneksi database rata-rata Antara 10 dan 262.142. Catatan: Nilai maksimum yang dapat diterima berkorelasi dengan nilai maksimum yang ditetapkan oleh tanda database max_connections. Menampilkan rata-rata koneksi klien database (cloudsql.googleapis.com/database/postgresql/num_backends) di seluruh node kumpulan baca dalam kumpulan baca. Catatan: Jika Managed Connection Pooling diaktifkan di instance, setiap koneksi yang membentuk kumpulan koneksi tidak dihitung secara terpisah dan disertakan dalam metrik AVERAGE_DB_CONNECTIONS. Jika Managed Connection Pooling diaktifkan, sebaiknya gunakan hanya metrik AVERAGE_CPU_UTILIZATION untuk mengontrol penskalaan otomatis kumpulan baca.

Saat kondisi untuk mengubah ukuran kumpulan baca terpenuhi, operasi penskalaan otomatis kumpulan baca dapat dilihat dari konsol Google Cloud . Semua operasi lain pada kumpulan baca dan instance utama diblokir hingga penskalaan otomatis kumpulan baca selesai.

Membaca karakteristik penskalaan otomatis pool

Karakteristik berikut berlaku:

  • Operasi pengecilan skala hanya menghapus satu node dalam satu waktu.
  • Operasi penskalaan menambahkan, secara paralel, sebanyak mungkin node yang diperlukan.
  • Secara default, operasi penurunan skala dan penskalaan diterapkan. Anda dapat memblokir operasi pengecilan skala secara opsional dengan menonaktifkannya secara manual (disableScaleIn).
  • Secara default, periode tunggu 600 detik diterapkan di antara operasi penskalaan otomatis kumpulan baca yang berurutan. Periode tunggu minimum 60 detik diperlukan, baik saat menskalakan masuk atau keluar.
  • Saat menetapkan metrik target, Anda juga harus menentukan jumlah node kumpulan baca minimum (minNodeCount) dan maksimum (maxNodeCount) yang ingin digunakan. Jika Anda mengaktifkan penskalaan otomatis pada kumpulan baca yang ada, ukuran kumpulan baca saat ini harus berada dalam rentang yang Anda tetapkan.

Batasan

Batasan berikut berlaku:

  • Penskalaan otomatis kumpulan baca mendukung maksimum 10 operasi penskalaan otomatis setiap 24 jam.
  • Jika Anda ingin membuat kumpulan baca baru atau menskalakan kumpulan baca yang ada, Anda harus menunggu hingga operasi pembuatan dan penskalaan sebelumnya selesai. Hal ini berlaku untuk operasi yang terkait dengan kumpulan baca serta kumpulan baca lainnya yang terkait dengan instance primer yang sama. Jika Anda mencoba menjalankan operasi serentak, Anda mungkin menerima pesan error berikut:
    Operation failed because another operation was already in progress.
    

Sebelum memulai

  • Pastikan Anda juga menetapkan nilai yang sesuai untuk max_wal_senders dan max_replication_slots. Untuk mengetahui informasi selengkapnya, lihat Karakteristik kumpulan baca.

Membuat kumpulan baca dengan penskalaan otomatis yang diaktifkan

Jika Anda menentukan nilai target 0,50 untuk AVERAGE_CPU_UTILIZATION, node pool baca akan ditambahkan atau dihapus dari pool baca untuk menjaga penggunaan CPU rata-rata di seluruh pool baca pada 0,50 atau kurang.

gcloud

Untuk membuat kumpulan baca dengan penskalaan otomatis diaktifkan, jalankan perintah berikut:

  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
  

Ganti kode berikut:

  • READ_POOL_NAME: nama yang ingin Anda tetapkan ke kumpulan baca.
  • MACHINE_TIER: tingkat mesin yang ingin Anda gunakan, seperti db-perf-optimized-N-2.
  • NODE_COUNT: jumlah node pool baca yang ingin Anda mulai.
  • DATABASE_VERSION: versi database yang ingin Anda gunakan, seperti POSTGRES_16.
  • PRIMARY_INSTANCE_NAME: nama instance utama yang ingin Anda gunakan.
  • REGION: region yang ingin Anda gunakan, seperti us-east1.
  • NETWORK_NAME: nama jaringan yang ingin Anda gunakan.
  • MAX_NODE_COUNT: jumlah maksimum node pool baca yang ingin digunakan oleh pool baca, seperti 5.
  • MIN_NODE_COUNT: jumlah minimum node pool baca yang ingin digunakan oleh pool baca, seperti 1.
  • TARGET_METRIC_1: target metrik yang ingin Anda gunakan, seperti berikut ini:
    • AVERAGE_CPU_UTILIZATION
    • AVERAGE_DB_CONNECTIONS
    Anda harus menentukan setidaknya satu dari dua metrik yang tersedia.
  • VALUE_1: nilai yang ingin Anda tetapkan untuk metrik target yang sebelumnya Anda tunjukkan. Misalnya, untuk metrik target AVERAGE_CPU_UTILIZATION, Anda dapat menetapkan nilai 0.50.

Terraform

Untuk membuat kumpulan baca dengan penskalaan otomatis yang diaktifkan, gunakan resource Terraform.

Contoh berikut mencakup resource untuk instance utama dan kumpulan baca.


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

Menerapkan perubahan

Untuk menerapkan konfigurasi Terraform di project, selesaikan langkah-langkah di bagian berikut. Google Cloud

Menyiapkan Cloud Shell

  1. Luncurkan Cloud Shell.
  2. Tetapkan project Google Cloud default tempat Anda ingin menerapkan konfigurasi Terraform.

    Anda hanya perlu menjalankan perintah ini sekali per project, dan dapat dijalankan di direktori mana pun.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Variabel lingkungan akan diganti jika Anda menetapkan nilai eksplisit dalam file konfigurasi Terraform.

Menyiapkan direktori

Setiap file konfigurasi Terraform harus memiliki direktorinya sendiri (juga disebut modul root).

  1. Di Cloud Shell, buat direktori dan file baru di dalam direktori tersebut. Nama file harus memiliki ekstensi .tf—misalnya main.tf. Dalam tutorial ini, file ini disebut sebagai main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Jika mengikuti tutorial, Anda dapat menyalin kode contoh di setiap bagian atau langkah.

    Salin kode contoh ke dalam main.tf yang baru dibuat.

    Atau, salin kode dari GitHub. Tindakan ini direkomendasikan jika cuplikan Terraform adalah bagian dari solusi menyeluruh.

  3. Tinjau dan ubah contoh parameter untuk diterapkan pada lingkungan Anda.
  4. Simpan perubahan Anda.
  5. Lakukan inisialisasi Terraform. Anda hanya perlu melakukan ini sekali per direktori.
    terraform init

    Secara opsional, untuk menggunakan versi penyedia Google terbaru, sertakan opsi -upgrade:

    terraform init -upgrade

Menerapkan perubahan

  1. Tinjau konfigurasi dan pastikan resource yang akan dibuat atau diupdate oleh Terraform sesuai yang Anda inginkan:
    terraform plan

    Koreksi konfigurasi jika diperlukan.

  2. Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan memasukkan yes pada prompt:
    terraform apply

    Tunggu hingga Terraform menampilkan pesan "Apply complete!".

  3. Buka Google Cloud project Anda untuk melihat hasilnya. Di konsol Google Cloud , buka resource Anda di UI untuk memastikan bahwa Terraform telah membuat atau mengupdatenya.

Menghapus perubahan

Untuk menghapus perubahan Anda, lakukan langkah-langkah berikut:

  1. Untuk menonaktifkan perlindungan penghapusan, di file konfigurasi Terraform Anda, tetapkan argumen deletion_protection ke false.
    deletion_protection =  "false"
  2. Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan memasukkan yes pada prompt:
    terraform apply
  1. Hapus resource yang sebelumnya diterapkan dengan konfigurasi Terraform Anda dengan menjalankan perintah berikut dan memasukkan yes pada prompt:

    terraform destroy

REST v1

Untuk membuat kumpulan baca dengan penskalaan otomatis diaktifkan, gunakan permintaan POST dengan metode instances:insert.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • READ_POOL_NAME: nama yang ingin Anda tetapkan ke kumpulan baca.
  • REGION: region tempat Anda ingin instance berada, seperti us-central1.
  • PRIMARY_INSTANCE_ID: ID instance utama yang ingin Anda gunakan.
  • PROJECT_ID: ID project tempat Anda ingin menempatkan pool baca, seperti my-project-name.
  • DATABASE_VERSION: versi database yang ingin Anda gunakan, seperti POSTGRES_16.
  • MACHINE_TIER: tingkat mesin yang ingin Anda gunakan, seperti db-perf-optimized-N-2.
  • FULL_NETWORK_NAME: nama jaringan yang ingin Anda gunakan.
  • MAX_NODE_COUNT: jumlah maksimum node pool baca yang ingin digunakan oleh pool baca, seperti 10.
  • MIN_NODE_COUNT: jumlah minimum node pool baca yang ingin digunakan oleh pool baca, seperti 2.
  • TARGET_METRIC_1: metrik target yang ingin Anda gunakan, seperti AVERAGE_CPU_UTILIZATION atau AVERAGE_DB_CONNECTIONS. Anda harus menentukan setidaknya satu dari dua metrik yang tersedia.
  • VALUE_1: nilai yang ingin Anda tetapkan untuk metrik target yang sebelumnya Anda tunjukkan. Misalnya, untuk metrik target AVERAGE_CPU_UTILIZATION, Anda dapat menetapkan nilai 0.50.
  • NODE_COUNT: jumlah node kumpulan baca yang ingin Anda mulai, seperti 3.

Metode HTTP dan URL:

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

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

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

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

Untuk membuat kumpulan baca dengan penskalaan otomatis diaktifkan, gunakan permintaan POST dengan metode instances:insert.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • READ_POOL_NAME: nama yang ingin Anda tetapkan ke kumpulan baca.
  • REGION: region tempat Anda ingin instance berada, seperti us-central1.
  • PRIMARY_INSTANCE_ID: ID instance utama yang ingin Anda gunakan.
  • PROJECT_ID: ID project tempat Anda ingin menempatkan pool baca, seperti my-project-name.
  • DATABASE_VERSION: versi database yang ingin Anda gunakan, seperti POSTGRES_16.
  • MACHINE_TIER: tingkat mesin yang ingin Anda gunakan, seperti db-perf-optimized-N-2.
  • FULL_NETWORK_NAME: nama jaringan yang ingin Anda gunakan.
  • MAX_NODE_COUNT: jumlah maksimum node pool baca yang ingin digunakan oleh pool baca, seperti 10.
  • MIN_NODE_COUNT: jumlah minimum node pool baca yang ingin digunakan oleh pool baca, seperti 2.
  • TARGET_METRIC_1: metrik target yang ingin Anda gunakan, seperti berikut:
    • AVERAGE_CPU_UTILIZATION
    • AVERAGE_DB_CONNECTIONS
    Anda harus menentukan setidaknya satu dari dua metrik yang tersedia.
  • VALUE_1: nilai yang ingin Anda tetapkan untuk metrik target yang sebelumnya Anda tunjukkan. Dalam contoh ini, untuk metrik target AVERAGE_CPU_UTILIZATION, tetapkan nilai 0.50.
  • NODE_COUNT: jumlah node kumpulan baca yang ingin Anda mulai, seperti 3.

Metode HTTP dan URL:

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

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

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

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

Mengaktifkan penskalaan otomatis kumpulan baca pada kumpulan baca yang ada

Jika sudah membuat kumpulan baca, Anda dapat mengaktifkan penskalaan otomatis dengan menunjukkan konfigurasi penskalaan otomatis yang ingin digunakan.

Misalnya, jika Anda menentukan nilai target 50 untuk AVERAGE_DB_CONNECTIONS, node akan ditambahkan atau dihapus dari kumpulan baca untuk menjaga koneksi database rata-rata di seluruh kumpulan pada 50 atau kurang.

gcloud

Untuk mengaktifkan kumpulan baca dengan penskalaan otomatis pada kumpulan baca yang ada, jalankan perintah berikut.

  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
  

Ganti kode berikut:

  • INSTANCE_NAME: nama instance yang terkait dengan kumpulan baca yang ingin Anda ubah.
  • MAX_NODE_COUNT: jumlah maksimum node pool baca yang ingin digunakan oleh pool baca, seperti 10.
  • MIN_NODE_COUNT: jumlah minimum node pool baca yang ingin digunakan oleh pool baca, seperti 2.
  • COOLDOWN_SECONDS_SCALE_OUT: Opsional: waktu tunggu atau jeda dalam detik antara pembuatan atau penghapusan node pool baca, seperti 180. Diperlukan periode tunggu minimum 60 detik. Nilai default-nya adalah 600 detik.
  • COOLDOWN_SECONDS_SCALE_IN: Opsional: waktu tunggu atau jeda dalam detik antara pembuatan atau penghapusan node pool baca, seperti 180. Diperlukan periode tunggu minimum 60 detik. Nilai default-nya adalah 600 detik.
  • TARGET_METRIC_1: metrik target yang ingin Anda gunakan, seperti berikut:
    • AVERAGE_CPU_UTILIZATION
    • AVERAGE_DB_CONNECTIONS
    Anda harus menentukan setidaknya satu dari dua metrik yang tersedia.
  • VALUE_1: nilai yang ingin Anda tetapkan untuk metrik target yang sebelumnya Anda tunjukkan. Dalam contoh ini, untuk metrik target AVERAGE_DB_CONNECTIONS, tetapkan nilai 50.

REST v1

Untuk mengaktifkan pool baca yang sudah ada dengan penskalaan otomatis, gunakan metode PATCH.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: ID atau nomor project dari project Google Cloud yang berisi instance.
  • INSTANCE_ID: ID instance yang terkait dengan pool baca.
  • MAX_NODE_COUNT: jumlah maksimum node pool baca yang ingin digunakan oleh pool baca, seperti 10.
  • MIN_NODE_COUNT: jumlah minimum node pool baca yang ingin digunakan oleh pool baca, seperti 2.
  • COOLDOWN_SECONDS: Opsional: waktu tunggu atau jeda dalam detik antara pembuatan atau penghapusan node pool baca, seperti 180.
  • SCALE_IN_DISABLED: Opsional: memungkinkan Anda menonaktifkan perilaku penskalaan pool baca. Untuk menonaktifkan penyusutan skala kumpulan baca, tetapkan nilai ke true.
  • TARGET_METRIC_1: metrik target yang ingin Anda gunakan, seperti berikut:
    • AVERAGE_CPU_UTILIZATION
    • AVERAGE_DB_CONNECTIONS
    Anda harus menentukan setidaknya satu dari dua metrik yang tersedia.
  • VALUE_1: nilai yang ingin Anda tetapkan untuk metrik target yang sebelumnya Anda tunjukkan. Dalam contoh ini, untuk metrik target AVERAGE_DB_CONNECTIONS, tetapkan nilai 50.

Metode HTTP dan URL:

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

Meminta isi 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
        }
      ]
    }
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

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

Untuk mengaktifkan penskalaan otomatis pada kumpulan baca yang sudah ada, gunakan metode PATCH.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: ID atau nomor project dari project Google Cloud yang berisi instance.
  • INSTANCE_ID: ID instance yang terkait dengan pool baca.
  • MAX_NODE_COUNT: jumlah maksimum node pool baca yang ingin digunakan oleh pool baca, seperti 10.
  • MIN_NODE_COUNT: jumlah minimum node pool baca yang ingin digunakan oleh pool baca, seperti 2.
  • COOLDOWN_SECONDS: Opsional: waktu tunggu atau jeda dalam detik antara pembuatan atau penghapusan node pool baca, seperti 180.
  • SCALE_IN_DISABLED: Opsional: memungkinkan Anda menonaktifkan perilaku penskalaan pool baca. Untuk menonaktifkan penyusutan skala kumpulan baca, tetapkan nilai ke true.
  • TARGET_METRIC_1: metrik target yang ingin Anda gunakan, seperti berikut:
    • AVERAGE_CPU_UTILIZATION
    • AVERAGE_DB_CONNECTIONS
    Anda harus menentukan setidaknya satu dari dua metrik yang tersedia.
  • VALUE_1: nilai yang ingin Anda tetapkan untuk metrik target yang sebelumnya Anda tunjukkan. Dalam contoh ini, untuk metrik target AVERAGE_DB_CONNECTIONS, tetapkan nilai 50.

Metode HTTP dan URL:

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

Meminta isi 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
        }
      ]
    }
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

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

Menonaktifkan penskalaan otomatis kumpulan baca pada kumpulan baca

Selesaikan langkah-langkah berikut untuk menonaktifkan penskalaan otomatis kumpulan baca.

gcloud

Untuk menonaktifkan penskalaan otomatis pool baca, jalankan perintah berikut.

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

Ganti kode berikut:

  • INSTANCE_NAME: nama instance yang terkait dengan kumpulan baca yang ingin Anda ubah.

REST v1

Untuk menonaktifkan penskalaan otomatis kumpulan baca, gunakan metode PATCH.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: ID atau nomor project dari project Google Cloud yang berisi instance.
  • INSTANCE_ID: ID instance yang terkait dengan pool baca.

Metode HTTP dan URL:

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

Meminta isi JSON:

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

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

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

Untuk menonaktifkan penskalaan otomatis kumpulan baca, gunakan metode PATCH.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: ID atau nomor project dari project Google Cloud yang berisi instance.
  • INSTANCE_ID: ID instance yang terkait dengan pool baca.

Metode HTTP dan URL:

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

Meminta isi JSON:

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

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

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

Lihat metrik

Gunakan insight sistem untuk melihat metrik yang relevan untuk kumpulan baca Anda.

Untuk AVERAGE_CPU_UTILIZATION, lihat diagram metrik utama pemakaian CPU.

Untuk AVERAGE_DB_CONNECTIONS, lihat Connections per database key metric chart.

Memantau operasi penskalaan otomatis kumpulan baca

Saat kondisi untuk memicu peristiwa penskalaan otomatis pool baca terpenuhi, operasi UPDATE akan berjalan di instance. Anda dapat melihat operasi ini dari konsol Google Cloud .

Operasi penskalaan otomatis kumpulan baca dapat memerlukan waktu 10 menit atau lebih untuk diterapkan ke instance. Koneksi yang ada tidak akan ditransfer ke node pool baca yang baru ditambahkan, yang berarti hanya koneksi baru yang akan terpengaruh oleh penskalaan otomatis pool baca.

Saat operasi penskalaan otomatis berjalan di kumpulan baca, Anda harus menunggu hingga selesai sebelum menjalankan update lain di kumpulan baca atau di instance utama. Jika Anda mencoba menjalankan permintaan serentak, Anda mungkin menerima pesan error berikut:

  Operation failed because another operation was already in progress.
  

Anda dapat memeriksa instance kumpulan baca dan melihat perubahan jumlah node:

  gcloud sql instances describe READ_POOL_NAME
  | grep nodeCount
  

Ganti kode berikut:

  • READ_POOL_NAME: nama pool baca yang informasinya ingin Anda dapatkan.

Log audit peristiwa sistem

Anda juga dapat melihat pesan log audit peristiwa sistem yang terkait dengan metode cloudsql.instances.readPoolAutoScale, yang berisi jumlah node lama dan baru.

Langkah berikutnya