Secara default, Cloud Run mengoptimalkan performa tinggi dengan target pemanfaatan 60% untuk CPU dan konkurensi, serta menskalakan jumlah instance secara otomatis untuk menangani semua permintaan yang masuk. Namun, untuk beberapa kasus penggunaan, Anda mungkin menginginkan kemampuan untuk mengonfigurasi faktor penskalaan yang akan digunakan, seperti hanya CPU, dan menetapkan target kustom untuk pemakaian.
Cloud Run menyediakan kontrol penskalaan untuk memberi Anda kepemilikan yang lebih besar atas perilaku penskalaan layanan Anda, sehingga Anda dapat membuat keputusan yang tepat tentang penskalaan workload sesuai dengan kebutuhan Anda. Anda dapat mengaktifkan perilaku penskalaan yang ditingkatkan dengan mempertahankan target pemanfaatan default, atau mengonfigurasi target pemanfaatan kustom berikut:
- Target pemakaian untuk penskalaan berbasis CPU
- Target pemanfaatan untuk penskalaan berbasis serentak
Dengan kontrol penskalaan, Anda dapat mengoptimalkan biaya dan meningkatkan prediktabilitas untuk layanan Anda. Untuk mengetahui informasi selengkapnya tentang perilaku penskalaan otomatis default layanan Cloud Run, lihat Tentang penskalaan otomatis instance di layanan Cloud Run.
Batas konfigurasi
Batasan berikut berlaku untuk target penskalaan kustom:
| Pendorong penskalaan | Default % | Persentase minimum yang dapat dikonfigurasi | % yang dapat dikonfigurasi maksimum |
|---|---|---|---|
CPU target utilization |
60% | 10% | 95% |
Concurrency target utilization |
60% | 10% | 95% |
Memilih ikut serta untuk perilaku penskalaan yang ditingkatkan
Autoscaler Cloud Run merespons secara cermat target yang Anda konfigurasi, bahkan untuk layanan dengan jumlah instance yang rendah. Pertimbangkan untuk mengaktifkan fitur ini guna meningkatkan prediktabilitas penskalaan, meskipun Anda berniat mempertahankan target pemanfaatan default sebesar 60% untuk CPU dan serentak.
Untuk mengaktifkan, Anda dapat menggunakan gcloud CLI atau YAML saat men-deploy revisi baru.
Setiap perubahan konfigurasi akan menghasilkan revisi baru. Revisi selanjutnya juga akan otomatis mendapatkan setelan konfigurasi ini, kecuali jika Anda melakukan pembaruan eksplisit untuk mengubahnya.
gcloud
Tetapkan nilai target penggunaan CPU dan target penggunaan konkurensi dari revisi tertentu dengan
menjalankan perintah gcloud beta run services update berikut:
gcloud beta run services update SERVICE --scaling-cpu-target=0.6 \ --scaling-concurrency-target=0.6
Ganti SERVICE dengan nama layanan Anda.
YAML
Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda mengupdate layanan yang sudah ada, download konfigurasi YAML-nya:
gcloud run services describe SERVICE --format export > service.yaml
Tambahkan atribut
run.googleapis.com/scaling-cpu-targetdanrun.googleapis.com/scaling-concurrency-target.apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/launch-stage: BETA name: SERVICE spec: template: metadata: annotations: run.googleapis.com/scaling-cpu-target: '0.6' run.googleapis.com/scaling-concurrency-target: '0.6'
Ganti SERVICE dengan nama layanan Anda.
Buat atau update layanan menggunakan perintah berikut:
gcloud run services replace service.yaml
Mengonfigurasi target kustom
Tentukan target pemanfaatan kustom untuk mengoptimalkan biaya atau meningkatkan performa untuk beban kerja Anda dengan mengonfigurasi target pemanfaatan CPU dan serentak tertentu dalam batas konfigurasi.
Setiap perubahan konfigurasi akan menghasilkan revisi baru. Revisi selanjutnya juga akan otomatis mendapatkan setelan konfigurasi ini, kecuali jika Anda melakukan pembaruan eksplisit untuk mengubahnya.
Anda dapat mengonfigurasi kontrol penskalaan menggunakan gcloud CLI atau YAML saat men-deploy revisi baru.
gcloud
Perbarui nilai target pemakaian CPU dan target pemakaian konkurensi dari revisi tertentu dengan
menjalankan perintah gcloud beta run services update.
Untuk memperbarui pemanfaatan CPU target, jalankan perintah berikut:
gcloud beta run services update SERVICE --scaling-cpu-target=CPU_TARGET
Ganti kode berikut:
SERVICE: nama layanan Anda.
CPU_TARGET: target penggunaan CPU. Tentukan nilai dari 0,1 hingga 0,95. Anda hanya dapat mengonfigurasi hingga dua digit setelah tanda desimal.
Untuk memperbarui pemanfaatan serentak target, jalankan perintah berikut:
gcloud beta run services update SERVICE --scaling-concurrency-target=CONCURRENCY_TARGET
Ganti kode berikut:
SERVICE: nama layanan Anda.
CONCURRENCY_TARGET: target penggunaan konkurensi. Tentukan nilai dari 0,1 hingga 0,95. Anda hanya dapat mengonfigurasi hingga dua digit setelah tanda desimal.
Untuk mengupdate target CPU dan pemanfaatan serentak, jalankan perintah berikut:
gcloud beta run services update SERVICE --scaling-cpu-target=CPU_TARGET \ --scaling-concurrency-target=CONCURRENCY_TARGET
Ganti kode berikut:
- SERVICE: nama layanan Anda.
- CPU_TARGET: target penggunaan CPU. Tentukan nilai dari 0,1 hingga 0,95. Anda hanya dapat mengonfigurasi hingga dua digit setelah tanda desimal.
- CONCURRENCY_TARGET: target penggunaan konkurensi. Tentukan nilai dari 0,1 hingga 0,95. Anda hanya dapat mengonfigurasi hingga dua digit setelah tanda desimal.
YAML
Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda mengupdate layanan yang sudah ada, download konfigurasi YAML-nya:
gcloud run services describe SERVICE --format export > service.yaml
Untuk memperbarui target pemakaian CPU dan konkurensi, tambahkan atribut
run.googleapis.com/scaling-cpu-targetdanrun.googleapis.com/scaling-concurrency-target:apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/launch-stage: BETA name: SERVICE spec: template: metadata: annotations: run.googleapis.com/scaling-cpu-target: 'CPU_TARGET' run.googleapis.com/scaling-concurrency-target: 'CONCURRENCY_TARGET'
Ganti kode berikut:
- SERVICE: nama layanan Anda.
- CPU_TARGET: target penggunaan CPU. Tentukan nilai dari 0,1 hingga 0,95. Anda hanya dapat mengonfigurasi hingga dua digit setelah tanda desimal.
- CONCURRENCY_TARGET: target penggunaan konkurensi. Tentukan nilai dari 0,1 hingga 0,95. Anda hanya dapat mengonfigurasi hingga dua digit setelah tanda desimal.
Buat atau update layanan menggunakan perintah berikut:
gcloud run services replace service.yaml
Menonaktifkan kontrol penskalaan
Anda dapat menonaktifkan target penggunaan CPU atau target penggunaan serentak, tetapi tidak keduanya. Satu pendorong penskalaan harus selalu aktif. Untuk menonaktifkan kontrol penskalaan, pulihkan nilai pemanfaatan default, bukan menonaktifkannya. Saat Anda menonaktifkan pendorong penskalaan, Cloud Run akan mengabaikan metrik tersebut saat membuat keputusan penskalaan.
Anda dapat menonaktifkan kontrol penskalaan menggunakan gcloud CLI atau YAML saat Anda men-deploy revisi baru.
gcloud
Anda dapat menonaktifkan target pemakaian CPU atau target pemakaian serentak dengan
menjalankan perintah gcloud beta run services update.
Untuk melakukan penskalaan hanya berdasarkan CPU, nonaktifkan target serentak dengan menjalankan perintah berikut:
gcloud beta run services update SERVICE --scaling-concurrency-target=disabled
Ganti SERVICE dengan nama layanan Anda.
Untuk melakukan penskalaan hanya berdasarkan serentak, nonaktifkan target CPU dengan menjalankan perintah berikut:
gcloud beta run services update SERVICE --scaling-cpu-target=disabled
Ganti SERVICE dengan nama layanan Anda.
YAML
Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda mengupdate layanan yang sudah ada, download konfigurasi YAML-nya:
gcloud run services describe SERVICE --format export > service.yaml
Untuk melakukan penskalaan hanya berdasarkan CPU, nonaktifkan target serentak dengan menyetel atribut
run.googleapis.com/scaling-concurrency-targetkedisabled:apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/launch-stage: BETA name: SERVICE spec: template: metadata: annotations: run.googleapis.com/scaling-concurrency-target: disabled
Ganti SERVICE dengan nama layanan Anda.
Untuk melakukan penskalaan hanya berdasarkan serentak, nonaktifkan target CPU dengan menyetel atribut
run.googleapis.com/scaling-cpu-targetkedisabled:apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/launch-stage: BETA name: SERVICE spec: template: metadata: annotations: run.googleapis.com/scaling-cpu-target: disabled
Ganti SERVICE dengan nama layanan Anda.
Buat atau update layanan menggunakan perintah berikut:
gcloud run services replace service.yaml
Pulihkan ke nilai default
Saat Anda memulihkan nilai pemanfaatan konkurensi target atau CPU target ke default, Anda akan memilih untuk tidak menggunakan fitur kontrol penskalaan. Anda dapat memulihkan kontrol penskalaan ke default menggunakan gcloud CLI atau YAML saat men-deploy revisi baru.
gcloud
Pulihkan target pemakaian CPU dan target pemakaian serentak ke nilai defaultnya dengan
menjalankan perintah gcloud beta run services update.
Untuk memulihkan penggunaan CPU target ke nilai defaultnya, jalankan perintah berikut:
gcloud beta run services update SERVICE --scaling-cpu-target=default
Ganti SERVICE dengan nama layanan Anda.
Untuk memulihkan pemanfaatan konkurensi target ke nilai defaultnya, jalankan perintah berikut:
gcloud beta run services update SERVICE --scaling-concurrency-target=default
Ganti SERVICE dengan nama layanan Anda.
Untuk memulihkan target pemakaian CPU dan target konkurensi ke nilai defaultnya, jalankan perintah berikut:
gcloud beta run services update SERVICE --scaling-cpu-target=default \ --scaling-concurrency-target=default
Ganti SERVICE dengan nama layanan Anda.
YAML
Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda mengupdate layanan yang sudah ada, download konfigurasi YAML-nya:
gcloud run services describe SERVICE --format export > service.yaml
Untuk memulihkan penggunaan CPU dan konkurensi ke target defaultnya, hapus atribut
run.googleapis.com/scaling-cpu-targetdanrun.googleapis.com/scaling-concurrency-targetdari file YAML Anda:apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/launch-stage: BETA name: SERVICE spec: template: metadata: # Remove the scaling target annotations to restore defaults ...
Ganti SERVICE dengan nama layanan Anda.
Buat atau update layanan menggunakan perintah berikut:
gcloud run services replace service.yaml
Melihat konfigurasi penskalaan
Anda dapat melihat konfigurasi penskalaan menggunakan gcloud CLI atau YAML.
Konsol
Di konsol Google Cloud , buka halaman Services Cloud Run:
Klik layanan Anda untuk membuka panel Detail layanan.
Klik tab Revisi.
Pada panel detail di sebelah kanan, lihat setelan Metrik penskalaan otomatis yang tercantum di bagian tab Containers.
gcloud
Gunakan perintah berikut:
gcloud run services describe SERVICE
Ganti SERVICE dengan nama layanan Anda.
Temukan nilai untuk setelan Target penggunaan CPU: dan Target penggunaan konkurensi: dalam konfigurasi yang ditampilkan.
Praktik terbaik
Anda dapat mengoptimalkan biaya dan mencegah penskalaan berlebih dengan mengurangi jumlah instance, atau Anda dapat meningkatkan performa dengan melakukan penskalaan yang lebih agresif sebagai respons terhadap pendorong tertentu. Untuk menentukan target pemanfaatan yang optimal untuk beban kerja Anda, gunakan strategi berikut:
Sebelum menyesuaikan target, identifikasi metrik yang memicu penskalaan layanan Anda. Ikuti langkah-langkah berikut untuk mengidentifikasi metrik penskalaan:
Buka Metrics Explorer di konsol Google Cloud untuk meninjau diagram pemantauan penggunaan CPU dan konkurensi Anda.
Telusuri dan pilih metrik
run.googleapis.com/scaling/recommended_instances, lalu tetapkan Agregasi ke Tidak diagregasi untuk melihat metrik yang dikelompokkan menurut pendorong penskalaan.
Driver dengan nilai tertinggi adalah driver yang mengontrol jumlah instance layanan Anda. Jika Anda ingin driver lain diprioritaskan, atau jika Anda ingin menskalakan lebih atau kurang agresif, sesuaikan target pemanfaatan untuk driver tertentu tersebut.
Sesuaikan target secara bertahap, dan tunggu beberapa menit di antara penyesuaian untuk mengamati pengaruhnya terhadap performa.
Gunakan pembagian traffic untuk menguji target penskalaan baru dengan mengarahkan sebagian kecil traffic ke revisi terpisah sebelum meluncurkannya ke seluruh layanan Anda.
Tentang target pemanfaatan rendah
Menurunkan target pemanfaatan ke minimum 0,1 (10%) akan mengubah cara penskalaan layanan Anda secara signifikan.
Manfaat menetapkan target pemanfaatan rendah meliputi:
Ketersediaan layanan tinggi: Layanan Anda akan di-scale up lebih awal, sehingga mempertahankan buffer besar kapasitas tidak aktif untuk menangani lonjakan traffic mendadak tanpa mengalami latensi.
Penskalaan yang lebih cepat pada jumlah instance yang rendah: Layanan diskalakan dengan lebih andal sebelum mencapai hambatan pemanfaatan tinggi.
Kekurangan menetapkan target pemakaian rendah meliputi:
- Potensi peningkatan biaya: Anda menjalankan lebih banyak instance daripada yang benar-benar diperlukan untuk beban saat ini, sehingga menyebabkan penagihan yang lebih tinggi.
- Keputusan penskalaan yang lebih sering: Pada pemakaian yang lebih rendah, Cloud Run memiliki toleransi yang lebih rendah, dan tidak menunggu terlalu lama sebelum melakukan penskalaan.
Langkah berikutnya
- Untuk mempelajari opsi penskalaan lainnya, lihat penskalaan manual.
- Untuk mengelola jumlah maksimum instance pada layanan Cloud Run Anda services, lihat Setelan jumlah maksimum instances.
- Untuk mengelola jumlah maksimum permintaan serentak yang ditangani oleh setiap instance lihat Setelan serentak.
- Untuk mengoptimalkan setelan serentak Anda, lihat tips pengembangan untuk penyesuaian serentak.
- Untuk menentukan instance nonaktif tetap berjalan pada meminimalkan latensi atau cold starts
pada permintaan pertama, lihat
Pengguna
min-instanceuntuk mengaktifkan instance nonaktif.