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.
Auf dieser Seite werden spezifische Einstellungen für Java-Funktionen in beschrieben AWS Lambda. 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: Einstellungen für die gestufte Kompilierung anpassen
Die gestufte Kompilierung ist ein Feature der virtuellen Java-Maschine (JVM). Sie können spezielle Einstellungen für die mehrstufige Kompilierung verwenden, um die Compiler der JVM just-in-time (JIT) 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 interpretiert die JVM Java-Bytecode. Auf Stufe 4 verwendet die JVM den C2-Compiler, um die beim Startup der Anwendung gesammelten Profildaten zu analysieren. 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. Setzen Sie beispielsweise die Stufe der gestuften Kompilierung auf 1, damit die JVM den C1-Compiler verwendet. 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 eingestellt, 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)
-
Öffnen Sie die Seite Funktionen
in der Lambda-Konsole. -
Wählen Sie eine Java-Funktion, für die Sie die gestufte Kompilierung anpassen möchten.
-
Wählen Sie die Registerkarte Konfiguration und dann im linken Menü die Option Umgebungsvariablen aus.
-
Wählen Sie Edit (Bearbeiten) aus.
-
Wählen Sie Umgebungsvariablen hinzufügen aus.
-
Geben Sie
JAVA_TOOL_OPTIONS
als Schlüssel ein. Geben Sie-XX:+TieredCompilation -XX:TieredStopAtLevel=1
als Wert ein. -
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 SerialJAVA_TOOL_OPTIONS
verwenden, um den Standard-GC zu ändern. Sie können zwischen dem Parallel GC und dem Shenandoah
Wenn Ihr Workload beispielsweise mehr und mehrere Speicher beansprucht CPUs, sollten Sie die Verwendung von Parallel GC in Betracht ziehen, um eine bessere Leistung zu erzielen. Hängen Sie dazu Folgendes an den Wert Ihrer Umgebungsvariablen JAVA_TOOL_OPTIONS
an:
-XX:+UseParallelGC