Pengaturan kustomisasi fungsi Java Lambda - AWS Lambda

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

Pengaturan kustomisasi fungsi Java Lambda

Halaman ini menjelaskan pengaturan khusus untuk fungsi Java di AWS Lambda. Anda dapat menggunakan pengaturan ini untuk menyesuaikan perilaku startup runtime Java. Ini dapat mengurangi latensi fungsi secara keseluruhan dan meningkatkan kinerja fungsi secara keseluruhan, tanpa harus memodifikasi kode apa pun.

Variabel lingkungan JAVA_TOOL_OPTIONS

Di Java, Lambda mendukung variabel JAVA_TOOL_OPTIONS lingkungan untuk mengatur variabel baris perintah tambahan di Lambda. Anda dapat menggunakan variabel lingkungan ini dengan berbagai cara, seperti untuk menyesuaikan pengaturan kompilasi berjenjang. Contoh berikutnya menunjukkan bagaimana menggunakan variabel JAVA_TOOL_OPTIONS lingkungan untuk kasus penggunaan ini.

Contoh: Sesuaikan pengaturan kompilasi berjenjang

Kompilasi berjenjang adalah fitur dari mesin virtual Java (JVM). Anda dapat menggunakan pengaturan kompilasi berjenjang tertentu untuk memanfaatkan kompiler JVM just-in-time (JIT) sebaik-baiknya. Biasanya, kompiler C1 dioptimalkan untuk waktu start-up yang cepat. Kompiler C2 dioptimalkan untuk kinerja keseluruhan terbaik, tetapi juga menggunakan lebih banyak memori dan membutuhkan waktu lebih lama untuk mencapainya.

Ada 5 tingkat kompilasi berjenjang yang berbeda. Pada Level 0, JVM menafsirkan kode byte Java. Pada Level 4, JVM menggunakan kompiler C2 untuk menganalisis data profil yang dikumpulkan selama startup aplikasi. Seiring waktu, ia memantau penggunaan kode untuk mengidentifikasi pengoptimalan terbaik.

Menyesuaikan tingkat kompilasi berjenjang dapat membantu Anda mengurangi latensi start dingin fungsi Java. Misalnya, atur tingkat kompilasi berjenjang ke 1 agar JVM menggunakan kompiler C1. Kompiler ini dengan cepat menghasilkan kode asli yang dioptimalkan tetapi tidak menghasilkan data profil apa pun dan tidak pernah menggunakan kompiler C2.

Dalam runtime Java 17, flag JVM untuk kompilasi berjenjang diatur untuk berhenti di level 1 secara default. Untuk runtime Java 11 dan di bawahnya, Anda dapat mengatur tingkat kompilasi berjenjang ke 1 dengan melakukan langkah-langkah berikut:

Untuk menyesuaikan pengaturan kompilasi berjenjang (konsol)
  1. Buka halaman Fungsi di konsol Lambda.

  2. Pilih fungsi Java yang ingin Anda sesuaikan kompilasi berjenjang.

  3. Pilih tab Konfigurasi, lalu pilih variabel Lingkungan di menu sebelah kiri.

  4. Pilih Edit.

  5. Pilih Tambahkan variabel lingkungan.

  6. Untuk kuncinya, masukkanJAVA_TOOL_OPTIONS. Untuk nilainya, masukkan-XX:+TieredCompilation -XX:TieredStopAtLevel=1.

    Tangkapan layar konsol Lambda yang menunjukkan cara menambahkan pengaturan kompilasi berjenjang menggunakan variabel lingkungan. JAVA_TOOL_OPTIONS
  7. Pilih Simpan.

catatan

Anda juga dapat menggunakan Lambda SnapStart untuk mengurangi masalah start dingin. SnapStartmenggunakan snapshot cache dari lingkungan eksekusi Anda untuk meningkatkan kinerja start-up secara signifikan. Untuk informasi selengkapnya tentang SnapStart fitur, batasan, dan wilayah yang didukung, lihatMeningkatkan kinerja startup dengan Lambda SnapStart.

Contoh: Menyesuaikan perilaku GC menggunakan JAVA_TOOL_OPTIONS

Java 11 runtime menggunakan Serial garbage collector (GC) untuk pengumpulan sampah. Secara default, runtime Java 17 juga menggunakan Serial GC. Namun, dengan Java 17 Anda juga dapat menggunakan variabel JAVA_TOOL_OPTIONS lingkungan untuk mengubah GC default. Anda dapat memilih antara Parallel GC dan Shenandoah GC.

Misalnya, jika beban kerja Anda menggunakan lebih banyak memori dan beberapa CPU, pertimbangkan untuk menggunakan Parallel GC untuk kinerja yang lebih baik. Anda dapat melakukan ini dengan menambahkan berikut ini ke nilai variabel JAVA_TOOL_OPTIONS lingkungan Anda:

-XX:+UseParallelGC