Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memantau konkurensi
Lambda memancarkan metrik CloudWatch Amazon untuk membantu Anda memantau konkurensi fungsi Anda. Topik ini menjelaskan metrik ini dan cara menafsirkannya.
Bagian-bagian
Metrik konkurensi umum
Gunakan metrik berikut untuk memantau konkurensi 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 grafikConcurrentExecutions
secara native di tab Pemantauan, 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.ClaimedAccountConcurrency
sama denganUnreservedConcurrentExecutions
ditambah jumlah konkurensi yang dialokasikan (yaitu total konkurensi cadangan ditambah total konkurensi yang disediakan). JikaClaimedAccountConcurrency
melebihi batas konkurensi akun Anda, Anda dapat meminta batas konkurensi akun yang lebih tinggi. Lihat metrik ini menggunakan MAX. Untuk informasi selengkapnya, lihat Bekerja dengan ClaimedAccountConcurrency metrik.
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 yang dikonfigurasi. Lihat metrik ini menggunakan MAX.
ProvisionedConcurrentExecutions
tidak 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 yang dikonfigurasi. Lihat metrik ini menggunakan SUM.
ProvisionedConcurrencyInvocations
berbeda dari ProvisionedConcurrentExecutions
yang 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 doa per menit, dan setiap pemanggilan membutuhkan waktu 2 menit untuk menyelesaikannya. Setiap bar horisontal 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 1, Request 1
masuk. Pada menit 1, nilai untuk MAX(ProvisionedConcurrentExecutions
) adalah 1, karena paling banyak 1 lingkungan eksekusi aktif selama beberapa menit terakhir. Nilai untuk SUM(ProvisionedConcurrencyInvocations
) juga 1, karena 1 permintaan baru masuk selama beberapa menit terakhir.
Di antara menit 1 dan 2, Request 2
masuk, dan Request 1
terus berjalan. Pada menit 2, nilai untuk MAX(ProvisionedConcurrentExecutions
) adalah 2, karena paling banyak 2 lingkungan eksekusi aktif selama beberapa menit terakhir. Namun, nilai untuk SUM(ProvisionedConcurrencyInvocations
) adalah 1, karena hanya 1 permintaan baru yang masuk selama beberapa menit terakhir. Perilaku metrik ini berlanjut hingga akhir contoh.
-
ProvisionedConcurrencySpilloverInvocations
— Berapa kali Lambda memanggil fungsi Anda pada konkurensi standar (reserved atau unreserved) saat semua konkurensi yang disediakan sedang digunakan. Lambda memancarkan metrik ini untuk setiap versi fungsi dan alias dengan konkurensi yang disediakan yang dikonfigurasi. Lihat metrik ini menggunakan SUM. NilaiProvisionedConcurrencyInvocations
+ProvisionedConcurrencySpilloverInvocations
harus sama dengan jumlah total pemanggilan fungsi (yaituInvocations
metrik).ProvisionedConcurrencyUtilization
— Persentase konkurensi yang disediakan yang digunakan (yaitu nilaiProvisionedConcurrentExecutions
dibagi dengan jumlah total konkurensi yang disediakan yang dialokasikan). Lambda memancarkan metrik ini untuk setiap versi fungsi dan alias dengan konkurensi yang disediakan yang 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 Application Auto Scaling untuk menangani penskalaan otomatis konkurensi yang disediakan berdasarkan ambang batas yang telah ditentukan sebelumnya.
Sebaliknya, nilai rendah secara konsisten untuk ProvisionedConcurrencyUtilization
dapat menunjukkan bahwa Anda mengalokasikan konkurensi yang disediakan secara berlebihan untuk fungsi Anda.
Bekerja dengan ClaimedAccountConcurrency
metrik
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)
UnreservedConcurrentExecutions
adalah jumlah pemanggilan bersamaan aktif yang menggunakan konkurensi tanpa syarat. Konkurensi yang dialokasikan adalah jumlah dari dua bagian berikut (diganti sebagai “konkurensi cadangan” dan RC
PC
sebagai “konkurensi yang disediakan”):
-
Total
RC
di semua fungsi di suatu Wilayah. -
Total
PC
di semua fungsi di Wilayah yang menggunakanPC
, tidak termasuk fungsi yang digunakanRC
.
catatan
Anda tidak dapat mengalokasikan PC
lebih dari RC
untuk suatu fungsi. Dengan demikian, fungsi selalu RC
lebih besar dari atau sama dengan fungsinyaPC
. Untuk menghitung kontribusi konkurensi yang dialokasikan untuk fungsi-fungsi tersebut dengan keduanya PC
dan, RC
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 tidak selalu mencerminkan ketersediaan konkurensi Anda yang sebenarnya. Ini karena Lambda juga mempertimbangkan konkurensi cadangan dan konkurensi yang disediakan untuk menentukan ketersediaan.
Sebagai ilustrasiClaimedAccountConcurrency
, pertimbangkan skenario di mana Anda mengonfigurasi banyak konkurensi cadangan 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 cadangan untuk. function-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 dari waktu ClaimedAccountConcurrency
ke waktu. Sepanjang skenario ClaimedAccountConcurrency
ini, minimal 800, meskipun pemanfaatan konkurensi aktual rendah di seluruh fungsi Anda. Ini karena Anda mengalokasikan total 800 unit konkurensi untuk function-orange
dan. function-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 rumus. ClaimedAccountConcurrency
Kita kemudian dapat memperoleh nilai ClaimedAccountConcurrency
pada berbagai titik dalam diagram:
-
Pada
t1
,ClaimedAccountConcurrency
adalah 800 (800 + 0UnreservedConcurrentExecutions
). -
Pada
t2
,ClaimedAccountConcurrency
adalah 900 (800 + 100UnreservedConcurrentExecutions
). -
Pada
t3
,ClaimedAccountConcurrency
lagi 900 (800 + 100UnreservedConcurrentExecutions
).
Menyiapkan ClaimedAccountConcurrency
metrik di CloudWatch
Lambda memancarkan metrik di. ClaimedAccountConcurrency
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%
Screenshot berikut menggambarkan bagaimana Anda dapat membuat grafik rumus ini. CloudWatch claim_utilization
Garis hijau mewakili pemanfaatan konkurensi dalam akun ini, yaitu sekitar 40%:
Tangkapan layar sebelumnya juga menyertakan CloudWatch alarm yang masuk ke ALARM
status 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.