Serentak

Dalam penayangan Knative, setiap revisi secara otomatis diskalakan ke jumlah instance container yang diperlukan untuk menangani semua permintaan masuk.

Ketika ada lebih banyak instance kontainer yang memproses permintaan, semakin banyak CPU dan memori digunakan, sehingga menimbulkan biaya yang lebih tinggi. Saat instance container baru harus dimulai, permintaan mungkin memerlukan waktu lebih lama diproses, sehingga akan menurunkan performa layanan Anda.

Untuk memberi Anda kontrol yang lebih besar, penayangan Knative menyediakan setelan serentak yang menentukan jumlah maksimum permintaan yang dapat diproses secara bersamaan oleh instance container tertentu.

Nilai konkurensi

Secara default, instance container penayangan Knative dapat menerima banyak permintaan di pada waktu yang sama (maksimum 80). Sebagai perbandingan, solusi {i>Function-as-a-Service<i} (FaaS) seperti Cloud Functions memiliki nilai konkurensi tetap 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 konkurensi yang ditentukan adalah maksimum dan penyaluran Knative mungkin tidak mengirim permintaan sebanyak mungkin ke instance container tertentu jika CPU instance sudah banyak digunakan.

Diagram berikut menunjukkan pengaruh setelan konkurensi terhadap jumlah instance container yang diperlukan untuk menangani permintaan serentak yang masuk:

Diagram konkurensi

Kapan harus membatasi konkurensi ke 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.

Perhatikan bahwa konkurensi 1 kemungkinan akan berdampak negatif pada penskalaan karena banyak instance container harus dimulai untuk menangani lonjakan permintaan masuk.

Studi kasus

Metrik berikut menunjukkan kasus penggunaan saat 400 klien membuat 3 permintaan per detik ke layanan penyaluran Knative yang disetel ke konkurensi maksimum dari 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 penyaluran Knative yang ditetapkan ke konkurensi maksimum sebesar 80. Hijau menunjukkan permintaan dari waktu ke waktu, garis biru bawah menunjukkan jumlah instance container mulai menangani permintaan. Perhatikan bahwa jauh lebih sedikit instance diperlukan untuk menangani volume permintaan yang sama.

Konkurensi ditetapkan ke 80

Langkah selanjutnya

Untuk mengelola konkurensi layanan penyaluran Knative Anda, lihat Menetapkan permintaan serentak.

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