Vanliga frågor och svar om Azure Command Launcher för Java (offentlig förhandsversion)

Ger svar på vanliga frågor om Azure Command Launcher för Java.

Hur skiljer sig jaz från java-kommandot?

Kommandot java kör HotSpot JVM (Java Virtual Machine) med standardinställningar om inte uttryckligen konfigurerats av användaren. jaz är en komponent i Azure Command Launcher för Java som lanseras java med stridstestade, molnoptimerade JVM-justeringsstandarder som är utformade för att förbättra prestanda och kostnadseffektivitet på virtuella Azure-datorer och -containrar.

Viktig fördel: utvecklare behöver inte justera JVM manuellt. jaz gör det för dem.

Vad händer om jag redan har angett några JVM-alternativ i min miljö?

Om din arbetsbelastning innehåller JVM-justeringsflaggor jaz tillämpar kommandot inte sina egna standardinställningar för justering. jaz java startar med de flaggor du valde.

Vi rekommenderar att du tar bort arbetsbelastningens justeringsflaggor och låter Azure Command Launcher för Java tillämpa sina egna.

Du kan också konfigurera jaz att ignorera dina justeringsflaggor och använda standardinställningarna för justeringen. Överväg att använda den här konfigurationen för att verifiera jaz med minimal ändring av arbetsbelastningskonfigurationen. Det gör du genom att ange följande miljövariabel:

export JAZ_IGNORE_USER_TUNING=1

Inställningen ignorera användarjustering gäller för kommandoradsargument, miljövariabler som läse av javaoch @-files.

Du kan också konfigurera jaz att hoppa över alla standardinställningar för justering genom att ange följande miljövariabel:

export JAZ_BYPASS=1

Kringgå-alternativet gör det möjligt för dig att ansluta till Azure Command Launcher för Java utan att påverka din nuvarande inställning, även om din arbetsbelastning använder standardbeteendet för java kommandot. Det här beteendet kan vara användbart för att verifiera verktygets beteende innan du rensar JVM-justeringsflaggor.

Det kan också vara användbart att kringgå justering när du felsöker ett problem som verkar vara relaterat till JVM-justering.

Vilka JVM-alternativ betraktas som justeringsflaggor?

Kommandot jaz anser att de flesta flaggor som börjar med -X eller -XX är en justeringsflagga, till exempel -Xmx<size>. Ett anmärkningsvärt exempel på en flagga som börjar med -X men inte är en justeringsflagga är -Xlog:<opts>.

Mer exakt utvärderas varje JVM-alternativ med hjälp av logiken i följande lista. Den här listan beskriver logiken i den senaste versionen av Azure Command Launcher för Java.

  1. Om alternativet börjar med någon annan text än -Xär det inte en justeringsflagga.
  2. Om alternativet matchar något av dessa reguljära uttryck är det inte en justeringsflagga:
    • ^-Xlog.+$
    • ^-XX:ErrorFile=.*$
    • ^-XX:[+-]?HeapDump.*$
    • ^-XX:[+-].*OnOutOfMemoryError$
  3. Annars är alternativet en justeringsflagga.

När jaz letar efter justeringsflaggor undersöker den argumenten som skickas till den och de miljövariabler som java läser automatiskt. Miljövariablerna är:

  • Java 8: JAVA_TOOL_OPTIONS, _JAVA_OPTIONS
  • Java 9 och senare: JAVA_TOOL_OPTIONS, JDK_JAVA_OPTIONS, _JAVA_OPTIONS

jaz hanterar även @-files, även kallade kommandoradsargumentfiler.

Kan jag skicka Java-agentflaggor när jag använder jaz?

Yes. Du kan fortfarande skicka -javaagent och andra flaggor som inte justerar flaggor och jaz hedrar dem. Du kan behålla användbara diagnostikflaggor som:

  • -Xlog för loggning
  • -javaagent för Application Insights eller andra APM-instrumentationsagenter (Application Performance Monitoring)

Är jaz kompatibelt med icke-Azure-miljöer?

jaz är utformat och testat främst för Azure-containrar och virtuella datorer, men det kan köras tekniskt någon annanstans. Vissa avancerade optimeringar och framtida funktioner kan dock vara Azure-specifika.

Är jaz tillgängligt för Windows Server?

jaz är för närvarande tillgängligt för Linux i x64- och arm64-miljöer. Om du har ett omedelbart behov av Windows Server kontaktar du oss på openjdk-support@microsoft.com