有关适用于 Java 的 Azure 命令启动器常见问题解答

提供有关适用于 Java 的 Azure 命令启动器常见问题的解答。

“jaz”与“java”命令有何不同?

除非用户显式配置,否则该 java 命令将运行具有默认设置的 HotSpot JVM(Java 虚拟机)。
jaz java通过经过战斗测试的云优化 JVM 优化默认值启动,旨在提高 Azure 容器和虚拟机上的性能和成本效益。 关键优势:开发人员无需手动优化 JVM。 jaz 为他们做。

如果我已在环境中设置一些 JVM 选项,该怎么办?

建议删除任何优化标志并应用 jaz 自己的标志。 jaz 假设大多数标志以 -X-XX 作为优化标志开头。 不是优化标志的标志的一个显著示例是一个以 -Xlog该标志开头的标志。

查找优化标志时 jaz ,它会处理自动读取的环境变量 java 。 环境变量包括:

  • Java 8: JAVA_TOOL_OPTIONS_JAVA_OPTIONS
  • Java 9 及更高版本:JAVA_TOOL_OPTIONS、、 JDK_JAVA_OPTIONS_JAVA_OPTIONS

jaz 还处理 @-files,也称为命令行参数文件。

如果使用“jaz”传递自定义 JVM 优化标志,会发生什么情况?

如果工作负荷已包含优化标志,则默认情况下 jaz 不会应用其优化默认值。 jaz java使用所选标志启动。

可以通过设置环境变量来配置 jaz 忽略自定义 JVM 优化标志并传递自己的标志:

JAZ_IGNORE_USER_TUNING=1

忽略用户优化设置适用于命令行参数、环境变量读取方式 java和 @-files。

是否可以使用“jaz”传递“java”代理标志?

Yes. 你仍然可以传递 -javaagent 其他未优化标志的标志,并 jaz 遵循它们。 可以保留有用的诊断标志,例如:

  • -Xlog 用于日志记录
  • -javaagent For Application Insights 或其他应用程序性能监视 (APM) 检测代理

如果要 jaz 跳过其所有优化以进行故障排除,可以使用:

JAZ_BYPASS=1

在清理 JVM 优化标志之前,绕过优化非常有用,尤其是在仅 jaz 依赖于现有用户提供的 JVM 配置或 java 启动器默认值的情况下加入时。

“jaz”是否与非 Azure 环境兼容?

jaz 主要针对 Azure 容器和虚拟机进行设计和测试,但在技术上可以在其他位置运行。 但是,某些高级优化和未来的功能可能是特定于 Azure 的。

“jaz”是否可用于 Windows Server?

jaz 目前适用于 x64 和 arm64 环境中的 Linux。 如果立即需要 Windows Server,请联系我们 openjdk-support@microsoft.com