Secara default, layanan Cloud Run memiliki jumlah instance maksimum yang ditentukan oleh batas kuota terendah yang relevan dari batas-batas berikut. Batas maksimum untuk setiap region juga dipengaruhi oleh konfigurasi CPU dan memori untuk layanan Cloud Run Anda. Secara khusus, jumlah maksimum instance yang tersedia untuk layanan Anda adalah minimum dari setiap hal berikut:
- dasar pengukuran kuota batas instance regional dibagi dengan kelipatan 1 CPU yang diminta
- Dasar pengukuran kuota instance regional dibagi dengan beberapa memori sebesar 2 GB yang diminta
- kuota CPU regional dibagi dengan konfigurasi CPU untuk layanan.
- kuota memori regional dibagi dengan konfigurasi memori untuk layanan.
- kuota GPU regional, dengan atau tanpa redundansi zona, yang dibagi dengan konfigurasi GPU untuk layanan.
Misalnya, kuota batas instance dasar sebanyak 1.000 instance dengan memori 4 GB atau 2 CPU dan batas 2.000 vCPU dan batas 4.000 GiB akan mendapatkan batas efektif sebesar 500.
Anda dapat melihat batas kuota instance dasar per region untuk region Anda di halaman kuota di konsol.
Cara meningkatkan kuota regional dasar
Jika memerlukan jumlah instance maksimum yang lebih banyak untuk region tempat layanan Cloud Run Anda di-deploy, Anda dapat meminta penambahan kuota.
Praktik terbaik untuk menetapkan instance maksimum
Bagian berikut menjelaskan praktik terbaik untuk mengonfigurasi batas instance maksimum untuk layanan Anda.
Nilai instance maksimum yang optimal untuk layanan berbasis peristiwa
Layanan yang dipicu peristiwa, seperti fungsi, dapat mengalami lonjakan traffic sporadis berdasarkan peristiwa yang masuk. Untuk menentukan nilai instance maksimum yang optimal untuk layanan ini, Anda perlu mempertimbangkan faktor-faktor seperti, waktu pemanggilan layanan, pemanggilan rata-rata yang diharapkan, frekuensi pemanggilan puncak, dan toleransi kesalahan untuk kegagalan pemanggilan.
Sebaiknya mulai dengan nilai instance maksimum 3, lalu pantau kegagalan pemanggilan dan sesuaikan nilai instance maksimum ke atas sesuai kebutuhan.
Menangani permintaan saat semua instance sibuk
Dalam keadaan normal, layanan Anda akan meningkatkan skala dengan membuat instance baru untuk menangani beban traffic yang masuk. Namun, jika Anda telah menetapkan batas instance maksimum, Anda mungkin akan menghadapi skenario ketika tidak ada instance yang cukup untuk memenuhi beban traffic yang masuk.
Dalam skenario tersebut, Cloud Run akan mencoba melayani permintaan masuk baru maksimal 30 detik:
- Jika instance selesai memproses permintaannya selama jangka waktu ini, instance tersebut mungkin akan mulai memproses permintaan masuk baru.
- Jika tidak ada instance yang tersedia, permintaan akan gagal.
Cloud Run secara otomatis menyimpan peristiwa yang ditujukan untuk layanan berbasis peristiwa hingga kapasitas tersedia.
Batas instance maksimum yang melampaui kemampuan penskalaan Cloud Run
Saat menentukan batas instance maksimum, Anda juga menentukan batas atas. Menetapkan batas yang besar tidak berarti layanan Anda akan diskalakan ke jumlah instance yang ditentukan. Artinya, jumlah instance yang berdampingan pada suatu waktu tidak boleh melebihi batas.
Selain itu, menetapkan batas instance maksimum dapat memengaruhi strategi penskalaan yang digunakan Cloud Run untuk memenuhi permintaan traffic Anda. Secara umum, Cloud Run akan memprioritaskan pemenuhan batas yang Anda tentukan, bukan meningkatkan skala dan berpotensi melebihi batas Anda.
Menangani lonjakan traffic
Pada beberapa kasus, seperti lonjakan traffic yang cepat, Cloud Run mungkin, untuk jangka waktu singkat, membuat lebih banyak instance daripada batas instance maksimum yang ditentukan. Jika layanan Anda tidak dapat menoleransi perilaku sementara ini, Anda mungkin perlu memperhitungkan margin keamanan dan menetapkan nilai instance maksimum yang lebih rendah daripada yang dapat ditoleransi oleh layanan Anda.
Deployment
Saat Anda men-deploy revisi baru, Cloud Run akan memigrasikan traffic dari revisi sebelumnya ke revisi baru. Karena batas instance maksimum ditetapkan untuk setiap revisi secara independen, Anda mungkin akan melampaui batas yang ditentukan untuk sementara selama periode setelah deployment.
Misalnya, sebuah layanan mungkin memiliki batas instance maksimum 5. Dalam keadaan normal, layanan akan menskalakan hingga 5 instance karena menangani permintaan. Saat Anda men-deploy revisi baru, revisi baru tersebut memiliki batas instance maksimumnya sendiri, yaitu 5.
Permintaan yang telah ditangani oleh revisi sebelumnya tidak akan terganggu saat Anda men-deploy revisi baru. Sebaliknya, permintaan tersebut akan terus mengalami progres. Permintaan masuk baru akan ditangani oleh revisi layanan yang baru di-deploy.
Dengan demikian, layanan dalam contoh sebelumnya mungkin memiliki hingga 10 total instance (5 untuk setiap revisi) selama periode setelah men-deploy revisi baru. Jumlah waktu yang dibutuhkan agar instance dari revisi sebelumnya dapat berhenti bergantung pada waktu yang diperlukan agar instance tersebut dapat menyelesaikan penanganan semua permintaan aktif. Ini adalah faktor tambahan yang perlu dipertimbangkan saat memilih batas instance maksimum yang sesuai.