Freigeben über


Häufig gestellte Fragen zum Azure-Befehlsstartprogramm für Java (öffentliche Vorschau)

Bietet Antworten auf häufig gestellte Fragen zum Azure-Befehlsstartprogramm für Java.

Wie unterscheidet sich dieses Tool vom Java-Befehl?

Der java Befehl führt den HotSpot JVM (Java Virtual Machine) mit Standardeinstellungen aus, es sei denn, der Benutzer wurde explizit konfiguriert. jaz ist eine Komponente des Azure Command Launcher für Java, die java mit bewährten, cloud-optimierten JVM-Optimierungseinstellungen startet, die zur Verbesserung der Leistung und Kosteneffizienz auf Azure-VMs und -Containern entwickelt wurden.

Hauptvorteil: Entwickler müssen das JVM nicht manuell optimieren. jaz macht es für sie.

Was geschieht, wenn ich bereits einige JVM-Optionen in meiner Umgebung festgelegt habe?

Wenn Ihre Workload JVM-Optimierungskennzeichnungen enthält, wendet der jaz Befehl keine eigenen Tuningstandardwerte an. jaz startet java mit den von Ihnen ausgewählten Flags.

Es wird empfohlen, die Optimierungskennzeichnungen Ihrer Workload zu entfernen und das Azure Command Launcher für Java selbst anzuwenden.

Sie können auch jaz so konfigurieren, dass Ihre Optimierungs-Flags ignoriert werden und die Standardeinstellungen für die Optimierung verwendet werden. Erwägen Sie die Verwendung dieser Konfiguration, um jaz mit minimaler Änderung Ihrer Workloadkonfiguration zu validieren. Legen Sie dazu die folgende Umgebungsvariable fest:

export JAZ_IGNORE_USER_TUNING=1

Die Einstellung zum Ignorieren der Benutzeroptimierung gilt für Befehlszeilenargumente, Umgebungsvariablen, die von javaund @-Dateien gelesen werden.

Sie können jaz auch so konfigurieren, dass es alle seine Optimierungsstandardwerte überspringt, indem Sie die folgende Umgebungsvariable festlegen:

export JAZ_BYPASS=1

Mit der Umgehungsoption können Sie den Azure-Befehlsstarter für Java integrieren, ohne Ihre aktuelle Optimierung zu beeinträchtigen, selbst wenn Ihre Arbeitslast das Standardverhalten des java-Befehls verwendet. Dieses Verhalten kann hilfreich sein, um das Verhalten des Tools zu validieren, bevor JVM-Tuning-Flags bereinigt werden.

Es kann auch hilfreich sein, die Optimierung zu umgehen, wenn ein Problem behoben wird, das sich auf die JVM-Optimierung bezieht.

Welche JVM-Optionen gelten als Tuningflags?

Der jaz-Befehl betrachtet die meisten Flags, die mit -X oder -XX beginnen, als Optimierungsflag, wie -Xmx<size>. Ein bemerkenswertes Beispiel für eine Flagge, die mit -X beginnt, aber keine Optimierungsflagge ist, ist -Xlog:<opts>.

Genauer gesagt wird jede JVM-Option mithilfe der Logik in der folgenden Liste ausgewertet. Diese Liste beschreibt die Logik in der neuesten Version des Azure-Befehlsstartfelds für Java.

  1. Wenn die Option mit einem anderen Text als -X beginnt, handelt es sich nicht um ein Tuning-Flag.
  2. Wenn die Option mit einem dieser regulären Ausdrücke übereinstimmt, handelt es sich nicht um eine Optimierungskennzeichnung:
    • ^-Xlog.+$
    • ^-XX:ErrorFile=.*$
    • ^-XX:[+-]?HeapDump.*$
    • ^-XX:[+-].*OnOutOfMemoryError$
  3. Andernfalls ist die Option eine Optimierungskennzeichnung.

Wenn jaz nach Optimierungskennzeichnungen sucht, untersucht es die an es übergebenen Argumente und die Umgebungsvariablen, die java automatisch liest. Die Umgebungsvariablen sind:

  • Java 8: JAVA_TOOL_OPTIONS, _JAVA_OPTIONS
  • Java 9 und höher: JAVA_TOOL_OPTIONS, , JDK_JAVA_OPTIONS_JAVA_OPTIONS

jaz behandelt auch @-Dateien, auch als Befehlszeilenargumentdateien bezeichnet.

Kann ich Java-Agent-Flags übergeben, wenn ich das Tool verwende?

Yes. Sie können weiterhin Kennzeichen übergeben und andere Flags, -javaagent die keine Kennzeichnungen optimieren, und jaz sie berücksichtigen. Sie können nützliche Diagnosekennzeichnungen beibehalten, z. B.:

  • -Xlog für die Protokollierung
  • -javaagent für Application Insights oder andere APM-Instrumentierungs-Agents (Application Performance Monitoring)

Ist das Tool mit Nicht-Azure-Umgebungen kompatibel?

jaz ist in erster Linie für Azure-Container und virtuelle Computer konzipiert und getestet, kann aber technisch an anderer Stelle ausgeführt werden. Einige erweiterte Optimierungen und zukünftige Features können jedoch Azure-spezifisch sein.

Ist das Tool für Windows Server verfügbar?

jaz ist derzeit für Linux unter x64- und arm64-Umgebungen verfügbar. Wenn Sie einen sofortigen Bedarf für Windows Server haben, wenden Sie sich bitte an uns unter openjdk-support@microsoft.com

Das Azure Command Launcher für Java wurde nur mit vollständigen JDK-Installationen getestet und zertifiziert. Es funktioniert möglicherweise nicht ordnungsgemäß mit:

  • JRE-Installationen (Java-Runtime-Umgebung)
  • Benutzerdefinierte jlink-Laufzeiten

Vollständige JDK-Installationen enthalten alle Tools und Bibliotheken, die jaz ordnungsgemäß funktionieren müssen. Benutzerdefinierte JRE- und jlink-Laufzeiten können einige dieser Komponenten fehlen, was jaz daran hindern kann, wie erwartet zu funktionieren.

Wenn Sie jaz verwenden müssen, stellen Sie sicher, dass Sie eine vollständige JDK-Installation von einem unterstützten OpenJDK-basierten Build sicherstellen.