Passen Sie das Startverhalten der Java-Laufzeit für Lambda-Funktionen an - AWS Lambda

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Passen Sie das Startverhalten der Java-Laufzeit für Lambda-Funktionen an

Auf dieser Seite werden spezifische Einstellungen für Java-Funktionen in AWS Lambda beschrieben. Sie können diese Einstellungen verwenden, um das Startup-Verhalten der Java-Laufzeit anzupassen. Dies kann die allgemeine Funktionslatenz reduzieren und die Gesamtleistung der Funktionen verbessern, ohne dass Code geändert werden muss.

Die JAVA_TOOL_OPTIONS Umgebungsvariable verstehen

In Java unterstützt Lambda die Umgebungsvariable JAVA_TOOL_OPTIONS, um zusätzliche Befehlszeilenvariablen in Lambda festzulegen. Sie können diese Umgebungsvariable auf verschiedene Arten verwenden, z. B. um die Einstellungen für die gestufte Kompilierung anzupassen. Im nächsten Beispiel wird gezeigt, wie die Umgebungsvariable JAVA_TOOL_OPTIONS für diesen Anwendungsfall verwendet wird.

Beispiel: Anpassen der Einstellungen für die mehrstufige Kompilierung

Die mehrstufige Kompilierung ist eine Funktion der Java Virtual Machine (). JVM Sie können spezielle Einstellungen für die mehrstufige Kompilierung verwenden, um die JVM's just-in-time (JIT) -Compiler optimal zu nutzen. In der Regel ist der C1-Compiler für eine schnelle Startzeit optimiert. Der C2-Compiler ist für die beste Gesamtleistung optimiert, benötigt aber auch mehr Speicher und es dauert länger, bis er erreicht ist.

Die gestufte Kompilierung umfasst 5 verschiedene Stufen. Auf Stufe 0 JVM interpretiert der Java-Bytecode. Auf Stufe 4 JVM verwendet der den C2-Compiler, um Profilerstellungsdaten zu analysieren, die beim Start der Anwendung gesammelt wurden. Im Laufe der Zeit überwacht sie die Code-Nutzung, um die besten Optimierungen zu identifizieren.

Durch die Anpassung der Stufe der gestuften Kompilierung können Sie die Kaltstartlatenz von Java-Funktionen reduzieren. Legen Sie beispielsweise die mehrstufige Kompilierungsebene auf 1 fest, um den C1-Compiler JVM verwenden zu können. Dieser Compiler erzeugt schnell optimierten nativen Code, generiert jedoch keine Profildaten und verwendet niemals den C2-Compiler.

In der Java 17-Laufzeit ist das JVM Flag für die mehrstufige Kompilierung standardmäßig so gesetzt, dass es bei Stufe 1 stoppt. Bis zur Java-11-Laufzeit können Sie die gestufte Kompilierungsstufe auf 1 setzen, indem Sie die folgenden Schritte ausführen:

Anpassen der Einstellungen für die gestufte Kompilierung (Konsole)
  1. Öffnen Sie die Seite Funktionen in der Lambda-Konsole.

  2. Wählen Sie eine Java-Funktion, für die Sie die gestufte Kompilierung anpassen möchten.

  3. Wählen Sie die Registerkarte Konfiguration und dann im linken Menü die Option Umgebungsvariablen aus.

  4. Wählen Sie Edit (Bearbeiten) aus.

  5. Wählen Sie Umgebungsvariablen hinzufügen aus.

  6. Geben Sie JAVA_TOOL_OPTIONS als Schlüssel ein. Geben Sie -XX:+TieredCompilation -XX:TieredStopAtLevel=1 als Wert ein.

    Fügen Sie die OPTIONS Umgebungsvariable JAVA TOOL _ _ mithilfe der Lambda-Konsole hinzu
  7. Wählen Sie Save (Speichern) aus.

Anmerkung

Sie können Lambda auch verwenden SnapStart , um Kaltstartprobleme zu beheben. SnapStartverwendet zwischengespeicherte Snapshots Ihrer Ausführungsumgebung, um die Startleistung erheblich zu verbessern. Weitere Informationen zu SnapStart Funktionen, Einschränkungen und unterstützten Regionen finden Sie unter. Verbesserung der Startleistung mit Lambda SnapStart

Beispiel: Anpassen des GC-Verhaltens mit JAVA _ _ TOOL OPTIONS

Java-11-Laufzeiten verwenden den Serial Garbage Collector (GC) für Garbage Collection. Standardmäßig verwenden Java-17-Laufzeiten auch den Serial GC. Mit Java 17 können Sie jedoch auch die Umgebungsvariable JAVA_TOOL_OPTIONS verwenden, um den Standard-GC zu ändern. Sie können zwischen dem Parallel GC und dem Shenandoah GC wählen.

Wenn Ihr Workload beispielsweise mehr und mehrere Speicher beansprucht, sollten Sie die Verwendung von Parallel GC in Betracht ziehenCPUs, um eine bessere Leistung zu erzielen. Hängen Sie dazu Folgendes an den Wert Ihrer Umgebungsvariablen JAVA_TOOL_OPTIONS an:

-XX:+UseParallelGC