Di Knative serving, setiap revisi secara otomatis diskalakan ke jumlah instance container yang diperlukan untuk menangani semua permintaan yang masuk. Jika revisi tidak menerima traffic apa pun, secara default revisi akan diskalakan ke nol instance container. Namun, jika diinginkan, Anda dapat mengubah default ini untuk menentukan instance yang akan tetap tidak ada aktivitas atau "warm" menggunakan setelan instance minimum.
Jumlah instance yang dijadwalkan dipengaruhi oleh:
- Jumlah CPU yang diperlukan untuk memproses permintaan
- Setelan konkurensi
- Setelan jumlah maksimum instance container
- Setelan jumlah minimum instance container
Dalam beberapa kasus, Anda mungkin ingin membatasi jumlah total instance container yang dapat dimulai, karena alasan kontrol biaya atau meningkatkan kompabilitas dengan resource lain yang digunakan pada layanan Anda. Misalnya, layanan Knative serving Anda mungkin berinteraksi dengan database yang hanya dapat menangani beberapa jumlah koneksi terbuka serentak.
Tentang instance container maksimum
Anda dapat menggunakan setelan instance container maksimum untuk membatasi jumlah total instance yang dapat dimulai secara paralel yang didokumentasikan pada bagian Setelan jumlah maksimum instance container.
Melampaui jumlah instance maksimum
Dalam keadaan normal, revisi Anda akan diskalakan dengan membuat instance baru
untuk menangani beban traffic masuk. Namun, ketika Anda mengatur batas jumlah instance maksimum pada beberapa skenario instance tidak akan cukup untuk memenuhi beban traffic tersebut. Dalam hal ini, permintaan masuk akan diantrekan hingga 60 detik. Selama periode 60 detik ini, jika instance selesai memproses permintaan akan tersedia untuk proses permintaan yang dimasukkan dalam antrean. Jika tidak ada instance tersedia selama periode 60 detik, permintaan akan gagal dengan kode error 429 di Cloud Run.
Jaminan penskalaan
Batas instance maksimum adalah batas atas. Menetapkan batas tinggi tidak berarti revisi Anda akan diskalakan ke jumlah instance container yang ditentukan. Hal ini hanya berarti bahwa jumlah instance container pada waktu tertentu tidak boleh melebihi batas.
Lonjakan traffic
Dalam beberapa kasus, seperti lonjakan traffic yang cepat, Knative serving mungkin, dalam jangka waktu yang singkat, membuat instance container lebih banyak daripada nilai instance maksimum yang ditentukan. Jika layanan Anda tidak dapat menoleransi aturan sementara ini, Anda mungkin ingin mempertimbangkan margin keamanan mengatur nilai instance maksimum lebih rendah.
Deployment
Saat Anda men-deploy revisi baru, Knative serving akan secara bertahap memigrasikan traffic dari revisi lama ke revisi baru. Karena batas instance maksimum ditetapkan untuk setiap revisi, Anda mungkin untuk sementara melebihi batas yang ditentukan selama periode setelah deployment.
Instance nonaktif dan meminimalkan cold start
Resource Kubernetes hanya digunakan saat instance menangani permintaan, tetapi hal ini tidak berarti Knative serving akan segera menonaktifkan instance setelah menangani semua permintaan. Untuk meminimalkan dampak cold start, Knative serving dapat menyimpan beberapa instance nonaktif. Instance ini siap menangani permintaan jika terjadi lonjakan traffic secara tiba-tiba.
Misalnya, saat instance container selesai menangani permintaan, instance tersebut mungkin tetap nonaktif selama jangka waktu tertentu jika permintaan lain perlu ditangani. Instance container nonaktif dapat mempertahankan resource seperti koneksi database terbuka. Namun, untuk Cloud Run, CPU tidak akan tersedia
Untuk menyimpan instance nonaktif agar tersedia secara permanen, gunakan setelan
min-instance.
Langkah berikutnya
- Untuk mengelola jumlah maksimum instance pada layanan Knative serving Anda, lihat Setelan jumlah maksimum instance container.
- Untuk mengelola jumlah maksimum permintaan serentak yang ditangani oleh setiap instance container, 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.