Penskalaan otomatis pool baca

Penskalaan otomatis kumpulan baca secara otomatis menambahkan atau menghapus node kumpulan baca di kumpulan baca berdasarkan kebutuhan workload aplikasi Anda.

Anda dapat mengontrol penskalaan otomatis kumpulan baca dengan membatasi pemakaian 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:

  • Average CPU utilization: memungkinkan Anda menetapkan penggunaan CPU rata-rata yang Anda inginkan untuk mengoperasikan pool baca. Kumpulan baca secara otomatis melakukan penskalaan dalam atau luar berdasarkan penggunaan CPU workload aplikasi Anda.
  • Average database connections: memungkinkan Anda menentukan jumlah rata-rata koneksi database klien yang harus dilayani oleh setiap node. Pool baca otomatis melakukan penskalaan di dalam atau di luar berdasarkan jumlah koneksi klien.

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

Untuk mengaktifkan penskalaan otomatis kumpulan baca, Anda dapat mengonfigurasi salah satu atau kedua metrik target ini pada instance. Jika kedua metrik aktif, Cloud SQL akan 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. Pemakaian CPU rata-rata (cloudsql.googleapis.com/database/cpu/utilization) di seluruh node kumpulan baca dalam kumpulan baca.
Koneksi database rata-rata Antara 10 dan 32.767. Catatan: Nilai maksimum yang dapat diterima berkorelasi dengan nilai maksimum yang ditetapkan oleh flag database max_connections. Merepresentasikan rata-rata koneksi klien database (cloudsql.googleapis.com/database/network/connections) di seluruh node kumpulan baca dalam kumpulan baca.

Jika 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 penurunan skala hanya menghapus satu node dalam satu waktu.
  • Operasi penyebaran skala menambahkan, secara paralel, node sebanyak yang diperlukan.
  • Secara default, operasi penurunan skala dan penyebaran skala diterapkan. Anda dapat memblokir operasi penurunan skala secara opsional dengan menonaktifkannya secara manual (disableScaleIn).
  • Secara default, periode tunggu selama 600 detik diterapkan di antara operasi penskalaan otomatis kumpulan baca yang berurutan. Periode tunggu minimum 60 detik diperlukan, baik saat melakukan penskalaan naik maupun turun.
  • 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.
  • Jika node pool baca mengalami penggunaan CPU yang lebih tinggi, khususnya karena overhead replikasi atau proses non-SQL Server pada node pool baca, penskalaan otomatis berbasis CPU akan dibatasi.

Jumlah maksimum node kumpulan baca per instance utama

Anda dapat menetapkan maksimal tujuh replika baca per instance utama.

Jumlah gabungan replika baca dan node kumpulan baca yang mereplikasi dari instance utama yang sama tidak boleh melebihi tujuh.

Cara menghitung jumlah node kumpulan baca maksimum per instance utama

Secara konseptual, Anda dapat menganggap replika baca sebagai satu node kumpulan baca.

Anda dapat mengonversi replika baca menjadi kumpulan baca, lalu mengubah jumlah node kumpulan baca menjadi angka yang lebih besar dari satu.

Kemudian, Anda dapat menetapkan penskalaan otomatis ke kumpulan baca sehingga jumlah node kumpulan baca disesuaikan secara dinamis ke atas atau ke bawah agar sesuai dengan kebutuhan workload.

Saat penskalaan otomatis diaktifkan di kumpulan baca, Anda harus menunjukkan jumlah node maksimum yang valid untuk kumpulan baca. Jumlah tersebut, jika digabungkan dengan jumlah replika baca yang ada yang mereplikasi dari instance utama yang sama, atau node kumpulan baca milik kumpulan baca lain yang mereplikasi dari instance utama yang sama, tidak boleh melebihi tujuh.

Misalnya, jika instance utama memiliki dua replika baca, dan satu kumpulan baca dengan dua node kumpulan baca, dan kumpulan baca kedua dengan penskalaan otomatis diaktifkan, jumlah node kumpulan baca maksimum untuk kumpulan baca kedua tidak boleh lebih besar dari tiga.

Batasan

Batasan berikut berlaku:

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

Sebelum memulai

Membuat kumpulan baca dengan penskalaan otomatis diaktifkan

Jika Anda menentukan nilai target 0,50 untuk AVERAGE_CPU_UTILIZATION, node kumpulan baca akan ditambahkan atau dihapus dari kumpulan baca untuk menjaga rata-rata pemanfaatan CPU di seluruh kumpulan 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 SQLSERVER_2022_ENTERPRISE.
  • 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 Anda inginkan untuk digunakan oleh pool baca, seperti 5.
  • MIN_NODE_COUNT: jumlah minimum node pool baca yang Anda inginkan untuk digunakan oleh pool baca, seperti 1.
  • 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 Anda tunjukkan sebelumnya. 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 "random_password" "root_password" {
  length  = 24
  special = true
}

resource "google_sql_database_instance" "primary" {
  name             = "sqlserver-primary"
  database_version = "SQLSERVER_2019_ENTERPRISE"
  region           = "europe-west4"
  root_password    = random_password.root_password.result
  instance_type    = "CLOUD_SQL_INSTANCE"

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

    backup_configuration {
      enabled                        = true
      point_in_time_recovery_enabled = true
    }

    ip_configuration {
      ipv4_enabled = true
    }
  }
}

resource "google_sql_database_instance" "read_pool" {
  name                 = "sqlserver-read-pool"
  database_version     = "SQLSERVER_2019_ENTERPRISE"
  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
      min_node_count             = 2
      max_node_count             = 5
      disable_scale_in           = false
      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 Google Cloud , selesaikan langkah-langkah di bagian berikut.

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 project Google Cloud 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 proteksi dari 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 menempatkan instance, 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 SQLSERVER_2022_ENTERPRISE.
  • 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 Anda inginkan untuk digunakan oleh instance pool baca, seperti 7. Anda dapat menetapkan maksimum tujuh node kumpulan baca per instance utama. Untuk mengetahui informasi selengkapnya, lihat Jumlah node maksimum.
  • MIN_NODE_COUNT: jumlah minimum node pool baca yang Anda inginkan untuk 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 Anda tunjukkan sebelumnya. Misalnya, untuk metrik target AVERAGE_CPU_UTILIZATION, Anda dapat menetapkan nilai 0.50.
  • NODE_COUNT: jumlah node pool 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 menempatkan instance, 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 SQLSERVER_2022_ENTERPRISE.
  • 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 Anda inginkan untuk digunakan oleh instance pool baca, seperti 7. Anda dapat menetapkan maksimum tujuh node kumpulan baca per instance utama. Untuk mengetahui informasi selengkapnya, lihat Jumlah node maksimum.
  • MIN_NODE_COUNT: jumlah minimum node pool baca yang Anda inginkan untuk 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 Anda tunjukkan sebelumnya. Dalam contoh ini, untuk metrik target AVERAGE_CPU_UTILIZATION, tetapkan nilai 0.50.
  • NODE_COUNT: jumlah node pool 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 di 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 angka 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 kumpulan baca yang Anda inginkan untuk digunakan oleh kumpulan baca, seperti 7. Anda dapat menetapkan maksimal 7 node kumpulan baca per instance utama. Untuk mengetahui informasi selengkapnya, lihat Jumlah node maksimum.
  • MIN_NODE_COUNT: jumlah minimum node pool baca yang Anda inginkan untuk digunakan oleh pool baca, seperti 2.
  • COOLDOWN_SECONDS_SCALE_OUT: Opsional: waktu tunggu atau cooldown 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 cooldown 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 Anda tunjukkan sebelumnya. Dalam contoh ini, untuk metrik target AVERAGE_DB_CONNECTIONS, tetapkan nilai 50.

REST v1

Untuk mengaktifkan pool baca yang 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 Anda inginkan untuk digunakan oleh instance pool baca, seperti 7. Anda dapat menetapkan maksimum tujuh node kumpulan baca per instance utama. Untuk mengetahui informasi selengkapnya, lihat Jumlah node maksimum.
  • MIN_NODE_COUNT: jumlah minimum node pool baca yang Anda inginkan untuk digunakan oleh pool baca, seperti 2.
  • COOLDOWN_SECONDS: Opsional: waktu tunggu atau cooldown dalam detik antara pembuatan atau penghapusan node pool baca, seperti 180.
  • SCALE_IN_DISABLED: Opsional: memungkinkan Anda menonaktifkan perilaku penurunan skala pool baca. Untuk menonaktifkan penurunan 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 Anda tunjukkan sebelumnya. 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 kumpulan baca yang 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 Anda inginkan untuk digunakan oleh instance pool baca, seperti 7. Anda dapat menetapkan maksimum tujuh node kumpulan baca per instance utama. Untuk mengetahui informasi selengkapnya, lihat Jumlah node maksimum.
  • MIN_NODE_COUNT: jumlah minimum node pool baca yang Anda inginkan untuk digunakan oleh pool baca, seperti 2.
  • COOLDOWN_SECONDS: Opsional: waktu tunggu atau cooldown dalam detik antara pembuatan atau penghapusan node pool baca, seperti 180.
  • SCALE_IN_DISABLED: Opsional: memungkinkan Anda menonaktifkan perilaku penurunan skala pool baca. Untuk menonaktifkan penurunan 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 Anda tunjukkan sebelumnya. 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 di 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 CPU utilization.

Untuk AVERAGE_DB_CONNECTIONS, lihat diagram metrik utama Total koneksi.

Memantau operasi penskalaan otomatis kumpulan baca

Jika kondisi terpenuhi untuk memicu peristiwa penskalaan otomatis kumpulan baca, operasi UPDATE akan berjalan pada 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 operasi 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 kumpulan 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