共用方式為


關於 Azure Command Launcher for Java(公開預覽版)的常見問題

提供適用於 Java 的 Azure 命令啟動器常見問題的解答。

Jaz 和 Java 指令有什麼不同?

除非使用者明確設定,否則 java 命令會以預設設定執行 HotSpot JVM (Java 虛擬機)。 jaz 是 Azure Command Launcher for Java 的一個元件,啟動 java 時採用經過實戰考驗、雲端優化的 JVM 預設值,旨在提升 Azure 虛擬機與容器的效能與成本效益。

主要優點:開發人員不需要手動調整 JVM。 jaz 為他們做。

如果我已經在環境中設定了一些 JVM 選項,會發生什麼事?

如果你的工作負載包含 JVM 調校標誌,指令 jaz 不會套用自己的調校預設值。 jazjava 以您選擇的旗標啟動。

我們建議移除工作負載的調校旗標,讓 Azure Command Launcher for Java 自行套用。

你也可以設定 jaz 忽略調校標誌,改用調校預設值。 考慮用這個配置來驗證 jaz ,對你的工作負載設定做最小的改動。 為此,請設定以下環境變數:

export JAZ_IGNORE_USER_TUNING=1

忽略使用者微調設定會套用至命令行自變數、由 java和 @-files 讀取的環境變數。

你也可以設定 jaz 以下環境變數,跳過所有調校預設:

export JAZ_BYPASS=1

使用「繞過選項」,你可以直接接入 Azure Command Launcher for Java,而不會影響目前的調校,即使你的工作負載使用的是該指令 java 的預設行為。 此行為有助於在清理 JVM 調校旗標前驗證工具行為。

在排除疑似與 JVM 調校相關的問題時,繞過調校也可能很有用。

哪些 JVM 選項被視為調音旗標?

指令 jaz 會將以 -X-XX 開頭的大多數旗標視為調整旗標,例如 -Xmx<size>。 一個以-X開頭但不是調音旗幟的著名例子是-Xlog:<opts>

更精確地說,每個 JVM 選項都是根據以下列表中的邏輯來評估。 此列表描述了最新版本 Azure Command Launcher for Java 的邏輯。

  1. 如果選項以除 -X之外的任何文字開頭,那就不是調音旗標。
  2. 如果選項符合上述任何一個正則表達式,那就不是調諧旗標:
    • ^-Xlog.+$
    • ^-XX:ErrorFile=.*$
    • ^-XX:[+-]?HeapDump.*$
    • ^-XX:[+-].*OnOutOfMemoryError$
  3. 否則,選項就是調音旗。

當尋找調諧標誌時 jaz ,會檢查傳遞給它的參數以及自動 java 讀取的環境變數。 環境變數如下:

  • Java 8: JAVA_TOOL_OPTIONS_JAVA_OPTIONS
  • Java 9 和更新版本:JAVA_TOOL_OPTIONS、、 JDK_JAVA_OPTIONS_JAVA_OPTIONS

jaz 也會處理 @-files,也稱為命令行自變數檔案。

使用 jaz 時,我可以傳遞 Java 代理的旗標嗎?

Yes. 您仍然可以傳遞 -javaagent 和其他未微調旗標的旗標,並 jaz 接受它們。 您可以保留有用的診斷旗標,例如:

  • -Xlog 用於記錄
  • -javaagent 適用於 Application Insights 或其他應用程式效能監視 (APM) 檢測代理程式

Jaz 是否相容於非 Azure 環境?

jaz 主要是針對 Azure 容器和虛擬機進行設計和測試,但可在技術上在其他地方執行。 不過,某些進階優化和未來的功能可能是 Azure 特定的。

Jaz 有支援 Windows Server 嗎?

jaz 目前適用於 x64 和 arm64 環境的 Linux。 如果您有 Windows Server 的立即需求,請與我們連絡: openjdk-support@microsoft.com