Menskalakan Instans Terkelola Lambda - AWS Lambda

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menskalakan Instans Terkelola Lambda

Instans Terkelola Lambda tidak menskalakan saat pemanggilan tiba dan tidak mendukung start dingin. Sebaliknya, ia menskalakan secara asinkron menggunakan sinyal konsumsi sumber daya. Instans Terkelola saat ini menskalakan berdasarkan pemanfaatan sumber daya CPU dan saturasi multi-konkurensi.

Perbedaan utama:

  • Lambda (default): Skala saat tidak ada lingkungan eksekusi gratis untuk menangani pemanggilan masuk (start dingin)

  • Instans Terkelola Lambda: Menimbang secara asinkron berdasarkan pemanfaatan sumber daya CPU dan saturasi multi-konkurensi dari lingkungan eksekusi

Jika lalu lintas Anda lebih dari dua kali lipat dalam 5 menit, Anda mungkin melihat pembatasan saat Lambda meningkatkan instance dan lingkungan eksekusi untuk memenuhi permintaan.

Siklus hidup penskalaan

Instans Terkelola Lambda menggunakan arsitektur terdistribusi untuk mengelola penskalaan:

Komponen:

  • Instans Terkelola - Jalankan di akun Anda di subnet yang Anda berikan

  • Router dan Scaler - Komponen Lambda bersama yang merutekan pemanggilan dan mengelola penskalaan

  • Agen Lambda - Berjalan pada setiap Instans Terkelola untuk mengelola siklus hidup lingkungan eksekusi dan memantau konsumsi sumber daya

Cara kerjanya:

  1. Saat Anda memublikasikan versi fungsi dengan penyedia kapasitas, Lambda meluncurkan Instans Terkelola di akun Anda. Ini meluncurkan tiga secara default untuk ketahanan AZ dan memulai tiga lingkungan eksekusi sebelum menandai versi fungsi Anda AKTIF.

  2. Setiap Instans Terkelola dapat menjalankan lingkungan eksekusi untuk beberapa fungsi yang dipetakan ke penyedia kapasitas yang sama.

  3. Saat lalu lintas mengalir ke aplikasi Anda, lingkungan eksekusi menggunakan sumber daya. Agen Lambda memberi tahu Scaler, yang memutuskan apakah akan menskalakan lingkungan eksekusi baru atau Instans Terkelola.

  4. Jika Router mencoba mengirim permintaan ke lingkungan eksekusi dengan konsumsi sumber daya yang tinggi, Agen Lambda pada instance itu memberitahukannya untuk mencoba lagi yang lain.

  5. Saat lalu lintas menurun, Agen Lambda memberi tahu Scaler, yang membuat keputusan untuk mengurangi lingkungan eksekusi dan menskalakan di Instans Terkelola.

Menyesuaikan perilaku penskalaan

Anda dapat menyesuaikan perilaku penskalaan Instans Terkelola melalui empat kontrol:

Kontrol tingkat fungsi

1. Memori fungsi dan v CPUs

Pilih ukuran memori dan alokasi vCPU untuk fungsi Anda. Ukuran fungsi terkecil yang didukung adalah 2GB dan 1vCPU.

Pertimbangan:

  • Pilih pengaturan memori dan vCPU yang akan mendukung eksekusi multi-konkuren fungsi Anda

  • Anda tidak dapat mengonfigurasi fungsi dengan kurang dari 1 vCPU karena fungsi yang berjalan pada Instans Terkelola harus mendukung beban kerja multi-konkuren

  • Anda tidak dapat memilih kurang dari 2GB karena ini cocok dengan rasio memori 2 banding 1 terhadap vCPU dari instance c, yang memiliki rasio terendah

  • Untuk aplikasi Python, Anda mungkin perlu memilih rasio memori yang lebih tinggi terhadap vCPUs, seperti 4 banding 1 atau 8 banding 1, karena cara Python menangani multi-konkurensi

  • Jika Anda menjalankan operasi intensif CPU atau melakukan sedikit IO, Anda harus memilih lebih dari satu vCPU

2. Konkurensi maksimum

Tetapkan konkurensi maksimum per lingkungan eksekusi.

Perilaku default: Lambda memilih default yang masuk akal yang menyeimbangkan konsumsi sumber daya dan throughput yang berfungsi untuk berbagai macam aplikasi.

Pedoman penyesuaian:

  • Tingkatkan konkurensi: Jika pemanggilan fungsi Anda menggunakan CPU yang sangat sedikit, Anda dapat meningkatkan konkurensi maksimum hingga maksimum 64 per vCPU

  • Kurangi konkurensi: Jika aplikasi Anda mengkonsumsi sejumlah besar memori dan sangat sedikit CPU, Anda dapat mengurangi konkurensi maksimum Anda

Penting: Karena Instans Terkelola Lambda dimaksudkan untuk aplikasi multi-konkuren, lingkungan eksekusi dengan konkurensi yang sangat rendah mungkin mengalami pembatasan saat penskalaan.

Kontrol tingkat penyedia kapasitas

3. Target pemanfaatan sumber daya

Pilih target Anda sendiri untuk konsumsi pemanfaatan CPU.

Perilaku default: Lambda mempertahankan ruang kepala yang cukup untuk lalu lintas Anda berlipat ganda dalam 5 menit tanpa throttle.

Opsi pengoptimalan:

  • Jika beban kerja Anda sangat stabil atau jika aplikasi Anda tidak sensitif terhadap throttle, Anda dapat menetapkan target ke tingkat tinggi untuk mencapai pemanfaatan yang lebih tinggi dan biaya yang lebih rendah

  • Jika Anda ingin mempertahankan ruang kepala untuk semburan lalu lintas, Anda dapat menetapkan target sumber daya ke tingkat rendah, yang akan membutuhkan lebih banyak kapasitas

4. Pemilihan tipe instans

Tetapkan jenis instance yang diizinkan atau dikecualikan.

Perilaku default: Lambda memilih jenis instans terbaik untuk beban kerja Anda. Sebaiknya izinkan Instans Terkelola Lambda memilih jenis instans untuk Anda, karena membatasi jumlah kemungkinan jenis instans dapat mengakibatkan ketersediaan lebih rendah.

Konfigurasi kustom:

  • Persyaratan perangkat keras khusus: Tetapkan jenis instans yang diizinkan ke daftar instance yang kompatibel. Misalnya, jika Anda memiliki aplikasi yang membutuhkan bandwidth jaringan tinggi, Anda dapat memilih beberapa jenis instans n

  • Optimalisasi biaya: Untuk lingkungan pengujian atau pengembangan, Anda dapat memilih jenis instans yang lebih kecil, seperti tipe instans m7a.large

Langkah selanjutnya