Dalam penayangan Knative, 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 untuk kompatibilitas yang lebih baik dengan resource lain yang digunakan oleh layanan Anda. Misalnya, layanan Knative 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, seperti yang didokumentasikan dalam 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 diantrekan hingga 60 detik. Selama periode 60 detik ini, jika instance selesai memproses permintaan, instance tersebut akan tersedia untuk memproses permintaan yang dimasukkan 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 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, penayangan Knative mungkin, dalam jangka waktu yang singkat, membuat instance penampung yang lebih banyak daripada nilai instance maks yang ditentukan. Jika layanan Anda tidak dapat menoleransi perilaku sementara ini, Anda mungkin ingin mempertimbangkan margin keamanan dan menetapkan nilai instance maks yang lebih rendah.
Deployment
Saat Anda men-deploy revisi baru, Knative serving akan memigrasikan traffic secara bertahap dari revisi lama ke revisi baru. Karena batas instance maksimum ditetapkan untuk setiap revisi, Anda mungkin 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 bahwa layanan Knative akan segera menonaktifkan instance setelah menangani semua permintaan. Untuk meminimalkan dampak cold start, layanan Knative dapat menyimpan beberapa instance dalam kondisi tidak aktif. Instance ini siap menangani permintaan jika terjadi lonjakan traffic secara tiba-tiba.
Misalnya, ketika instance container selesai menangani permintaan, instance tersebut mungkin akan tetap dalam keadaan nonaktif selama beberapa waktu 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 berikutnya
- Untuk mengelola jumlah maksimum instance pada layanan penayangan Knative Anda, lihat Menetapkan 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-instance
untuk mengaktifkan instance nonaktif.