Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Personalizzare il comportamento di avvio del runtime Java per le funzioni Lambda
Questa pagina descrive le impostazioni specifiche delle funzioni Java in AWS Lambda. È possibile utilizzare queste impostazioni per personalizzare il comportamento di avvio del runtime Java. Ciò può ridurre la latenza complessiva della funzione e migliorare le prestazioni complessive delle funzioni senza dover modificare il codice.
Informazioni sulla variabile di ambiente JAVA_TOOL_OPTIONS
In Java, Lambda supporta la variabile di ambiente JAVA_TOOL_OPTIONS
per impostare variabili della linea di comando aggiuntive in Lambda. È possibile utilizzare questa variabile di ambiente in vari modi, ad esempio per personalizzare le impostazioni di compilazione a più livelli. L'esempio seguente illustra come utilizzare la variabile di ambiente JAVA_TOOL_OPTIONS
per questo caso d'uso.
Esempio: personalizzazione delle impostazioni di compilazione a più livelli
La compilazione a livelli è una funzionalità della macchina virtuale Java (JVM). È possibile utilizzare impostazioni di compilazione a più livelli specifiche per sfruttare al meglio i compilatori just-in-time (JIT) della JVM. In genere, il compilatore C1 è ottimizzato per tempi di avvio rapidi. Il compilatore C2 è ottimizzato per le migliori prestazioni complessive, ma di contro utilizza più memoria e impiega più tempo per raggiungerle.
Esistono 5 diversi livelli di compilazione a più livelli. Al livello 0, la JVM interpreta il bytecode Java. Al livello 4, la JVM utilizza il compilatore C2 per analizzare i dati di profilazione raccolti durante l'avvio dell'applicazione. Nel tempo, monitora l'utilizzo del codice per identificare le migliori ottimizzazioni.
La personalizzazione del livello di compilazione a più livelli può aiutarti a ridurre la latenza di avvio a freddo delle funzioni Java. Ad esempio, imposta il livello di compilazione a più livelli su 1 per fare in modo che la JVM utilizzi il compilatore C1. Questo compilatore produce rapidamente codice nativo ottimizzato, ma non genera dati di profilazione e non utilizza mai il compilatore C2.
Nel runtime di Java 17, il flag JVM per la compilazione a più livelli è configurato per interrompersi al livello 1 per impostazione predefinita. Per il runtime di Java 11 e versioni precedenti, puoi impostare il livello di compilazione a più livelli su 1 effettuando le seguenti operazioni:
Personalizzazione delle impostazioni di compilazione a più livelli (console)
-
Apri la pagina Funzioni
della console Lambda. -
Scegli una funzione Java per la quale desideri personalizzare la compilazione a più livelli.
-
Scegli la scheda Configurazione, quindi scegli Variabili di ambiente nel menu a sinistra.
-
Scegli Modifica.
-
Scegli Add environment variable (Aggiungi variabile d'ambiente).
-
Per la chiave, inserisci
JAVA_TOOL_OPTIONS
. Per il valore, inserisci-XX:+TieredCompilation -XX:TieredStopAtLevel=1
. -
Seleziona Salva.
Nota
Puoi anche utilizzare Lambda SnapStart per mitigare i problemi di avvio a freddo. SnapStart utilizza snapshot memorizzati nella cache dell'ambiente di esecuzione per migliorare significativamente le prestazioni di avvio. Per ulteriori informazioni sulle funzionalità, le limitazioni e le regioni supportate da SnapStart, consulta la sezione Migliorare le prestazioni di avvio con Lambda SnapStart.
Esempio: personalizzazione del comportamento del GC utilizzando JAVA_TOOL_OPTIONS
I runtime di Java 11 utilizzano SerialJAVA_TOOL_OPTIONS
per modificare il GC predefinito. Puoi scegliere tra Parallel GC e Shenandoah GC
Ad esempio, se il carico di lavoro utilizza più memoria e più CPU, prendi in considerazione l'utilizzo di Parallel GC per ottenere prestazioni migliori. Puoi farlo aggiungendo quanto segue al valore della tua variabile di ambiente JAVA_TOOL_OPTIONS
:
-XX:+UseParallelGC