Condividi tramite


Domande frequenti sull'utilità di avvio dei comandi di Azure per Java (anteprima pubblica)

Fornisce risposte alle domande comuni sull'utilità di avvio dei comandi di Azure per Java.

In che modo jaz è diverso dal comando java?

Il java comando esegue HotSpot JVM (Java Virtual Machine) con impostazioni predefinite, a meno che non siano configurate in modo esplicito dall'utente. jaz è un componente dell'utilità di avvio dei comandi di Azure per Java che avvia java con impostazioni JVM predefinite e ottimizzate per il cloud, progettate per migliorare le prestazioni ed efficienza dei costi su VM e contenitori di Azure.

Vantaggio chiave: gli sviluppatori non devono ottimizzare manualmente la JVM. jaz lo fa per loro.

Cosa accade se sono già state impostate alcune opzioni JVM nell'ambiente?

Se il carico di lavoro include flag di ottimizzazione JVM, il jaz comando non applica le proprie impostazioni predefinite di ottimizzazione. jaz viene avviato java con i flag scelti.

È consigliabile rimuovere i flag di ottimizzazione del carico di lavoro e consentire all'Utilità di avvio comandi di Azure per Java di applicare i propri flag.

È anche possibile configurare jaz affinché ignori i flag di ottimizzazione e utilizzi le sue impostazioni predefinite di ottimizzazione. Prendere in considerazione l'uso di questa configurazione per convalidare jaz con modifiche minime alla configurazione del carico di lavoro. A tale scopo, impostare la variabile di ambiente seguente:

export JAZ_IGNORE_USER_TUNING=1

L'impostazione ignora l'ottimizzazione utente si applica agli argomenti della riga di comando, alle variabili di ambiente lette da javae a @-files.

È anche possibile configurare per ignorare jaz tutte le impostazioni predefinite di ottimizzazione impostando la variabile di ambiente seguente:

export JAZ_BYPASS=1

L'opzione bypass consente di eseguire l'onboarding all'Azure Command Launcher per Java senza influire sull'ottimizzazione corrente, anche se il carico di lavoro usa il comportamento predefinito del comando java. Questo comportamento può essere utile per convalidare il comportamento dello strumento prima di pulire i flag di ottimizzazione di JVM.

Può anche essere utile bypassare il tuning durante la risoluzione di un problema che sembra essere correlato al tuning della JVM.

Quali opzioni JVM sono considerate flag di ottimizzazione?

Il jaz comando considera la maggior parte dei flag che iniziano con -X o -XX come flag di ottimizzazione, ad esempio -Xmx<size>. Un esempio rilevante di un flag che inizia con -X ma non è un flag di ottimizzazione è -Xlog:<opts>.

Più precisamente, ogni opzione JVM viene valutata usando la logica nell'elenco seguente. Questo elenco descrive la logica nella versione più recente dell'utilità di avvio dei comandi di Azure per Java.

  1. Se l'opzione inizia con qualsiasi testo diverso da -X, non è un flag di ottimizzazione.
  2. Se l'opzione corrisponde a una di queste espressioni regolari, non è un flag di regolazione:
    • ^-Xlog.+$
    • ^-XX:ErrorFile=.*$
    • ^-XX:[+-]?HeapDump.*$
    • ^-XX:[+-].*OnOutOfMemoryError$
  3. In caso contrario, l'opzione è un flag di ottimizzazione.

Quando jaz cerca i flag di ottimizzazione, esamina gli argomenti passati e le variabili di ambiente che java legge automaticamente. Le variabili di ambiente sono:

  • Java 8: JAVA_TOOL_OPTIONS, _JAVA_OPTIONS
  • Java 9 e versioni successive: JAVA_TOOL_OPTIONS, JDK_JAVA_OPTIONS, _JAVA_OPTIONS

jaz gestisce anche @-files, noti anche come file di argomenti della riga di comando.

È possibile passare le flag dell'agente Java quando si utilizza jaz?

Yes. È comunque possibile passare -javaagent e altri flag che non ottimizzano i flag e jaz li rispetta. È possibile mantenere flag di diagnostica utili, ad esempio:

  • -Xlog per la registrazione
  • -javaagent per Application Insights o altri agenti di strumentazione di Application Performance Monitoring (APM)

Jaz è compatibile con ambienti non Azure?

jaz è progettato e testato principalmente per contenitori di Azure e macchine virtuali, ma tecnicamente può essere eseguito altrove. Tuttavia, alcune ottimizzazioni avanzate e le funzionalità future potrebbero essere specifiche di Azure.

Jaz è disponibile per Windows Server?

jaz è attualmente disponibile per Linux in ambienti x64 e arm64. Se hai bisogno immediato di Windows Server, contattaci all'indirizzo openjdk-support@microsoft.com