Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Pemantauan konkurensi
Lambda memancarkan CloudWatch metrik Amazon untuk membantu Anda memantau konkurensi untuk fungsi Anda. Topik ini menjelaskan metrik ini dan cara menafsirkannya.
Bagian-bagian
Metrik konkurensi umum
Gunakan metrik berikut untuk memantau konkurensi untuk fungsi Lambda Anda. Granularitas untuk setiap metrik adalah 1 menit.
-
ConcurrentExecutions— Jumlah pemanggilan bersamaan aktif pada titik waktu tertentu. Lambda memancarkan metrik ini untuk semua fungsi, versi, dan alias. Untuk fungsi apa pun di konsol Lambda, Lambda menampilkan grafikConcurrentExecutionssecara native di tab Monitoring, di bawah Metrik. Lihat metrik ini menggunakan MAX. -
UnreservedConcurrentExecutions— Jumlah pemanggilan bersamaan aktif yang menggunakan konkurensi tanpa syarat. Lambda memancarkan metrik ini di semua fungsi di suatu wilayah. Lihat metrik ini menggunakan MAX. -
ClaimedAccountConcurrency— Jumlah konkurensi yang tidak tersedia untuk pemanggilan sesuai permintaan.ClaimedAccountConcurrencysama denganUnreservedConcurrentExecutionsditambah jumlah konkurensi yang dialokasikan (yaitu total konkurensi yang dicadangkan ditambah total konkurensi yang disediakan). JikaClaimedAccountConcurrencymelebihi batas konkurensi akun Anda, Anda dapat meminta batas konkurensi akun yang lebih tinggi.Lihat metrik ini menggunakan MAX. Untuk informasi selengkapnya, lihat Bekerja dengan met ClaimedAccountConcurrency rik.
Metrik konkurensi terprovisi
Gunakan metrik berikut untuk memantau fungsi Lambda menggunakan konkurensi yang disediakan. Granularitas untuk setiap metrik adalah 1 menit.
-
ProvisionedConcurrentExecutions— Jumlah instance lingkungan eksekusi yang secara aktif memproses pemanggilan pada konkurensi yang disediakan. Lambda memancarkan metrik ini untuk setiap versi fungsi dan alias dengan konkurensi yang disediakan dikonfigurasi. Lihat metrik ini menggunakan MAX.
ProvisionedConcurrentExecutionstidak sama dengan jumlah total konkurensi yang disediakan yang Anda alokasikan. Misalnya, Anda mengalokasikan 100 unit konkurensi yang disediakan ke versi fungsi. Selama menit tertentu, jika paling banyak 50 dari 100 lingkungan eksekusi tersebut menangani pemanggilan secara bersamaan, maka nilai MAX (ProvisionedConcurrentExecutions) adalah 50.
-
ProvisionedConcurrencyInvocations— Berapa kali Lambda memanggil kode fungsi Anda menggunakan konkurensi yang disediakan. Lambda memancarkan metrik ini untuk setiap versi fungsi dan alias dengan konkurensi yang disediakan dikonfigurasi. Lihat metrik ini menggunakan SUM.
ProvisionedConcurrencyInvocationsberbeda dari ProvisionedConcurrentExecutions dalam ProvisionedConcurrencyInvocations menghitung jumlah total pemanggilan, sementara ProvisionedConcurrentExecutions menghitung jumlah lingkungan aktif. Untuk memahami perbedaan ini, pertimbangkan skenario berikut:
Dalam contoh ini, misalkan Anda menerima 1 pemanggilan per menit, dan setiap pemanggilan membutuhkan waktu 2 menit untuk menyelesaikannya. Setiap bilah horizontal oranye mewakili satu permintaan. Misalkan Anda mengalokasikan 10 unit konkurensi yang disediakan untuk fungsi ini, sehingga setiap permintaan berjalan pada konkurensi yang disediakan.
Di antara menit 0 dan 1Request 1, masuk. Pada menit 1, nilai untuk MAX (ProvisionedConcurrentExecutions) adalah 1, karena paling banyak 1 lingkungan eksekusi aktif selama menit terakhir. Nilai untuk SUM (ProvisionedConcurrencyInvocations) juga 1, karena 1 permintaan baru masuk selama menit terakhir.
Di antara menit 1 dan 2Request 2, masuk, dan Request 1 terus berjalan. Pada menit 2, nilai untuk MAX (ProvisionedConcurrentExecutions) adalah 2, karena paling banyak 2 lingkungan eksekusi aktif selama menit terakhir. Namun, nilai untuk SUM (ProvisionedConcurrencyInvocations) adalah 1, karena hanya 1 permintaan baru yang masuk selama menit terakhir. Perilaku metrik ini berlanjut hingga akhir contoh.
-
ProvisionedConcurrencySpilloverInvocations— Berapa kali Lambda memanggil fungsi Anda pada konkurensi standar (dicadangkan atau tidak dipesan) saat semua konkurensi yang disediakan sedang digunakan. Lambda memancarkan metrik ini untuk setiap versi fungsi dan alias dengan konkurensi yang disediakan dikonfigurasi. Lihat metrik ini menggunakan SUM. NilaiProvisionedConcurrencyInvocations+ProvisionedConcurrencySpilloverInvocationsharus sama dengan jumlah total pemanggilan fungsi (yaituInvocationsmetrik).ProvisionedConcurrencyUtilization— Persentase konkurensi yang disediakan yang digunakan (yaitu nilaiProvisionedConcurrentExecutionsdibagi dengan jumlah total konkurensi yang disediakan yang dialokasikan). Lambda memancarkan metrik ini untuk setiap versi fungsi dan alias dengan konkurensi yang disediakan dikonfigurasi. Lihat metrik ini menggunakan MAX.
Misalnya, Anda menyediakan 100 unit konkurensi yang disediakan ke versi fungsi. Selama menit tertentu, jika paling banyak 60 dari 100 lingkungan eksekusi tersebut menangani pemanggilan secara bersamaan, maka nilai MAX (ProvisionedConcurrentExecutions) adalah 60, dan nilai MAX (ProvisionedConcurrencyUtilization) adalah 0,6.
Nilai tinggi untuk ProvisionedConcurrencySpilloverInvocations mungkin menunjukkan bahwa Anda perlu mengalokasikan konkurensi tambahan yang disediakan untuk fungsi Anda. Atau, Anda dapat mengonfigurasi Penskalaan Otomatis Aplikasi untuk menangani penskalaan otomatis konkurensi yang disediakan berdasarkan ambang batas yang telah ditentukan sebelumnya.
Sebaliknya, nilai rendah secara konsisten untuk ProvisionedConcurrencyUtilization mungkin menunjukkan bahwa Anda mengalokasikan konkurensi yang disediakan secara berlebihan untuk fungsi Anda.
Bekerja dengan met ClaimedAccountConcurrency rik
Lambda menggunakan ClaimedAccountConcurrency metrik untuk menentukan berapa banyak konkurensi akun Anda tersedia untuk pemanggilan sesuai permintaan. Lambda menghitung ClaimedAccountConcurrency menggunakan rumus berikut:
ClaimedAccountConcurrency = UnreservedConcurrentExecutions + (allocated concurrency)
UnreservedConcurrentExecutionsadalah jumlah pemanggilan bersamaan aktif yang menggunakan konkurensi tanpa syarat. Konkurensi yang dialokasikan adalah jumlah dari dua bagian berikut (menggantikan RC sebagai “konkurensi cadangan” dan PC sebagai “konkurensi yang disediakan”):
-
Total
RCdi semua fungsi di suatu Wilayah. -
Total
PCdi semua fungsi di Wilayah yang menggunakanPC, tidak termasuk fungsi yang menggunakanRC.
catatan
Anda tidak dapat mengalokasikan PC lebih dari RC untuk suatu fungsi. Dengan demikian, fungsi selalu RC lebih besar dari atau sama dengan nyaPC. Untuk menghitung kontribusi terhadap konkurensi yang dialokasikan untuk fungsi tersebut dengan keduanya PC danRC, Lambda hanya mempertimbangkanRC, yang merupakan maksimum dari keduanya.
Lambda menggunakan ClaimedAccountConcurrency metrik, bukanConcurrentExecutions, untuk menentukan berapa banyak konkurensi yang tersedia untuk pemanggilan sesuai permintaan. Meskipun ConcurrentExecutions metrik berguna untuk melacak jumlah pemanggilan bersamaan yang aktif, metrik ini tidak selalu mencerminkan ketersediaan konkurensi Anda yang sebenarnya. Ini karena Lambda juga mempertimbangkan konkurensi yang dicadangkan dan konkurensi yang disediakan untuk menentukan ketersediaan.
Sebagai ilustrasiClaimedAccountConcurrency, pertimbangkan skenario di mana Anda mengonfigurasi banyak konkurensi yang dicadangkan dan konkurensi yang disediakan di seluruh fungsi Anda yang sebagian besar tidak digunakan. Dalam contoh berikut, asumsikan bahwa batas konkurensi akun Anda adalah 1.000, dan Anda memiliki dua fungsi utama di akun Anda: function-orange danfunction-blue. Anda mengalokasikan 600 unit konkurensi yang dicadangkan untukfunction-orange. Anda mengalokasikan 200 unit konkurensi yang disediakan untuk. function-blue Misalkan seiring waktu, Anda menerapkan fungsi tambahan dan mengamati pola lalu lintas berikut:
Pada diagram sebelumnya, garis hitam menunjukkan penggunaan konkurensi aktual dari waktu ke waktu, dan garis merah menunjukkan nilai ClaimedAccountConcurrency dari waktu ke waktu. Sepanjang skenario ClaimedAccountConcurrency ini, minimal 800, meskipun pemanfaatan konkurensi aktual rendah di seluruh fungsi Anda. Ini karena Anda mengalokasikan 800 unit total konkurensi untuk function-orange danfunction-blue. Dari perspektif Lambda, Anda telah “mengklaim” konkurensi ini untuk digunakan, sehingga Anda secara efektif hanya memiliki 200 unit konkurensi yang tersisa untuk fungsi lain.
Untuk skenario ini, konkurensi yang dialokasikan adalah 800 dalam ClaimedAccountConcurrency rumus. Kita kemudian dapat memperoleh nilai ClaimedAccountConcurrency pada berbagai titik dalam diagram:
-
Pada
t1,ClaimedAccountConcurrencyadalah 800 (800 + 0UnreservedConcurrentExecutions). -
Pada
t2,ClaimedAccountConcurrencyadalah 900 (800 + 100UnreservedConcurrentExecutions). -
Pada
t3,ClaimedAccountConcurrencylagi-lagi 900 (800 + 100UnreservedConcurrentExecutions).
Menyiapkan ClaimedAccountConcurrency metrik di CloudWatch
Lambda memancarkan ClaimedAccountConcurrency metrik masuk CloudWatch. Gunakan metrik ini bersama dengan nilai SERVICE_QUOTA(ConcurrentExecutions) untuk mendapatkan persentase pemanfaatan konkurensi di akun Anda, seperti yang ditunjukkan dalam rumus berikut:
Utilization = (ClaimedAccountConcurrency/SERVICE_QUOTA(ConcurrentExecutions)) * 100%
Tangkapan layar berikut menggambarkan bagaimana Anda dapat membuat grafik rumus ini CloudWatch. claim_utilizationGaris hijau mewakili pemanfaatan konkurensi dalam akun ini, yaitu sekitar 40%:
Tangkapan layar sebelumnya juga menyertakan CloudWatch alarm yang masuk ke ALARM keadaan ketika pemanfaatan konkurensi melebihi 70%. Anda dapat menggunakan ClaimedAccountConcurrency metrik bersama dengan alarm serupa untuk secara proaktif menentukan kapan Anda mungkin perlu meminta batas konkurensi akun yang lebih tinggi.