Dalam penayangan Knative, setiap revisi secara otomatis diskalakan ke jumlah instance container yang diperlukan untuk menangani semua permintaan yang masuk.
Jika ada lebih banyak instance container yang memproses permintaan, lebih banyak CPU dan memori yang akan digunakan, sehingga mengakibatkan biaya yang lebih tinggi. Saat instance penampung baru perlu dimulai, permintaan mungkin memerlukan waktu lebih lama untuk diproses, sehingga mengurangi performa layanan Anda.
Untuk memberi Anda kontrol yang lebih besar, penayangan Knative menyediakan setelan konkurensi yang menentukan jumlah maksimum permintaan yang dapat diproses secara bersamaan oleh instance penampung tertentu.
Nilai konkurensi
Secara default, instance container layanan Knative dapat menerima banyak permintaan secara bersamaan (hingga maksimum 80). Perhatikan bahwa sebagai perbandingan, solusi Functions-as-a-Service (FaaS) seperti Cloud Run Functions memiliki konkurensi tetap sebesar 1.
Meskipun Anda harus menggunakan nilai konkurensi default, jika diperlukan, Anda dapat
menurunkan konkurensi maksimum. Misalnya,
jika kode Anda tidak dapat memproses permintaan paralel,
tetapkan konkurensi ke 1
.
Nilai serentak yang ditentukan adalah maksimum dan layanan Knative mungkin tidak mengirim banyak permintaan ke instance container tertentu jika CPU instance sudah digunakan secara tinggi.
Diagram berikut menunjukkan bagaimana setelan serentak memengaruhi jumlah instance penampung yang diperlukan untuk menangani permintaan serentak yang masuk:
Kapan harus membatasi konkurensi untuk satu permintaan dalam satu waktu
Anda dapat membatasi konkurensi sehingga hanya satu permintaan dalam satu waktu yang akan dikirim ke setiap instance container yang berjalan. Anda harus mempertimbangkan untuk melakukan hal ini jika:
- Setiap permintaan menggunakan sebagian besar CPU atau memori yang tersedia.
- Image container Anda tidak dirancang untuk menangani beberapa permintaan sekaligus, misalnya, jika container Anda bergantung pada status global yang tidak dapat dibagikan oleh dua permintaan.
Perlu diperhatikan bahwa konkurensi 1
kemungkinan akan berdampak negatif terhadap performa
penskalaan, karena banyak instance container harus dimulai untuk menangani lonjakan
permintaan yang masuk.
Studi kasus
Metrik berikut menunjukkan kasus penggunaan ketika 400 klien membuat 3 permintaan per detik ke layanan penayangan Knative yang ditetapkan ke konkurensi maksimum 1. Garis atas berwarna hijau menunjukkan permintaan dari waktu ke waktu, garis biru bawah menunjukkan jumlah instance container yang mulai menangani permintaan.
Metrik berikut menunjukkan 400 klien yang membuat 3 permintaan per detik ke layanan penayangan Knative yang ditetapkan ke konkurensi maksimum 80. Garis atas berwarna hijau menunjukkan permintaan dari waktu ke waktu, garis biru bawah menunjukkan jumlah instance container yang mulai menangani permintaan. Perhatikan bahwa jauh lebih sedikit instance yang diperlukan untuk menangani volume permintaan yang sama.
Langkah berikutnya
Untuk mengelola konkurensi layanan penayangan Knative, lihat Menetapkan konkurensi.
Untuk mengoptimalkan setelan serentak Anda, lihat tips pengembangan untuk penyesuaian serentak.