Dalam penayangan Knative, setiap revisi otomatis diskalakan ke jumlah instance container yang diperlukan untuk menangani semua permintaan yang masuk. Jika revisi tidak menerima traffic apa pun, secara default revisi tersebut akan diskalakan ke nol instance container. Namun, jika diinginkan, Anda dapat mengubah setelan default ini untuk menentukan instance agar tetap tidak ada aktivitas atau "warm" menggunakan setelan instance minimum.
Jumlah instance yang dijadwalkan terpengaruh oleh:
- Jumlah CPU yang dibutuhkan untuk memproses permintaan
- Setelan konkurensi
- Jumlah maksimum setelan instance container
- Jumlah minimum setelan instance container
Dalam beberapa kasus, Anda mungkin ingin membatasi jumlah total instance container yang dapat dimulai karena alasan kontrol biaya, atau agar lebih kompatibel dengan resource lain yang digunakan oleh layanan Anda. Misalnya, layanan inferensi Knative Anda mungkin berinteraksi dengan database yang hanya dapat menangani sejumlah koneksi terbuka serentak.
Tentang instance container maksimum
Anda dapat menggunakan setelan instance container maksimum untuk membatasi jumlah total instance yang dapat dimulai secara paralel, seperti yang didokumentasikan dalam bagian Menetapkan 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 mengantre hingga 60 detik. Selama periode 60 detik ini, jika instance selesai memproses permintaan, instance akan tersedia untuk memproses permintaan dalam antrean. Jika tidak ada instance yang 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 yang tinggi tidak berarti bahwa revisi Anda akan diskalakan ke jumlah instance container yang ditentukan. Ini hanya berarti bahwa jumlah instance container pada waktu tertentu tidak boleh melebihi batas.
Lonjakan traffic
Dalam beberapa kasus, seperti lonjakan traffic yang cepat, penayangan Knative dapat, untuk jangka waktu yang singkat, membuat instance container yang sedikit lebih banyak daripada nilai instance maksimum yang ditetapkan. Jika layanan Anda tidak dapat menoleransi perilaku sementara ini, Anda mungkin perlu memperhitungkan margin keamanan dan menetapkan nilai instance maksimal yang lebih rendah.
Deployment
Saat Anda men-deploy revisi baru, penayangan Knative secara bertahap akan memigrasikan traffic dari revisi lama ke revisi baru. Karena batas instance maksimum ditetapkan untuk setiap revisi, Anda dapat melampaui batas yang ditentukan untuk sementara selama periode setelah deployment.
Instance nonaktif dan meminimalkan cold start
Resource Kubernetes hanya digunakan saat instance menangani permintaan, tetapi ini tidak berarti penayangan Knative akan langsung menghentikan instance setelah menangani semua permintaan. Untuk meminimalkan dampak cold start, penyajian Knative dapat membuat beberapa instance tetap tidak ada aktivitas. Instance ini siap menangani permintaan jika terjadi lonjakan traffic yang tiba-tiba.
Misalnya, setelah instance container selesai menangani permintaan, instance tersebut mungkin tetap tidak ada aktivitas 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 secarapermanen, gunakan
min-instance
setelan.
Langkah selanjutnya
- Untuk mengelola jumlah maksimum instance layanan penayangan Knative Anda, lihat Menetapkan jumlah maksimum instance container.
- Untuk mengelola jumlah maksimum permintaan serentak yang ditangani oleh setiap instance container, lihat Menetapkan konkurensi.
- 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-instance
untuk mengaktifkan instance nonaktif.