Serentak

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:

Diagram konkurensi

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.

Konkurensi ditetapkan ke satu

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.

Konkurensi ditetapkan ke 80

Langkah berikutnya

Untuk mengelola konkurensi layanan penayangan Knative, lihat Menetapkan konkurensi.

Untuk mengoptimalkan setelan serentak Anda, lihat tips pengembangan untuk penyesuaian serentak.