Предоставляет ответы на распространенные вопросы о средстве запуска команд Azure для Java.
Как это средство отличается от команды Java?
Команда java запускает JVM HotSpot (виртуальную машину Java) с параметрами по умолчанию, если пользователь явно не настроен.
jaz — это компонент средства запуска команд Azure для Java, который запускает java с проверенными в реальных условиях и оптимизированными для облака настройками JVM, предназначенными для повышения производительности и экономичности на виртуальных машинах Azure и в контейнерах.
Ключевое преимущество: разработчикам не нужно вручную настраивать JVM.
jaz делает это для них.
Что произойдет, если в моей среде уже заданы некоторые параметры JVM?
Если рабочая нагрузка включает флаги настройки JVM, jaz команда не применяет собственные настройки по умолчанию.
jaz запускается java с выбранными флагами.
Мы рекомендуем удалить флаги настройки рабочей нагрузки и разрешить средству запуска команд Azure для Java применять собственные.
Вы также можете настроить jaz , чтобы игнорировать флаги настройки и использовать его параметры по умолчанию.
Рекомендуется использовать эту конфигурацию для проверки jaz с минимальным изменением конфигурации рабочей нагрузки.
Для этого задайте следующую переменную среды:
export JAZ_IGNORE_USER_TUNING=1
Параметр настройки пользователя игнорируется к аргументам командной строки, переменным среды, считываемым javaи @-files.
Вы также можете настроить jaz на пропуск всех настроек по умолчанию, установив следующую переменную среды:
export JAZ_BYPASS=1
Параметр обхода позволяет подключиться к средству запуска команд Azure для Java, не влияя на текущую настройку, даже если рабочая нагрузка использует поведение java команды по умолчанию.
Это поведение может быть полезно для проверки поведения средства перед очисткой флагов настройки JVM.
Может оказаться полезным обойти настройку при устранении неполадок, которые, по-видимому, связаны с настройкой JVM.
Какие параметры JVM считаются флагами настройки?
Команда jaz рассматривает большинство флагов, которые начинаются с -X или -XX являются флагом настройки, например -Xmx<size>.
Заметный пример флага, который начинается с -X, но не является настраивающим флагом, это -Xlog:<opts>.
Точнее, каждый параметр JVM вычисляется с помощью логики в следующем списке. В этом списке описана логика в последней версии средства запуска команд Azure для Java.
- Если параметр начинается с любого текста, отличного от
-Xтекста, это не флаг настройки. - Если параметр соответствует любому из этих регулярных выражений, это не флаг настройки:
^-Xlog.+$^-XX:ErrorFile=.*$^-XX:[+-]?HeapDump.*$^-XX:[+-].*OnOutOfMemoryError$
- В противном случае параметр является флагом настройки.
Когда jaz ищет флаги настройки, он проверяет аргументы, передаваемые ему, и автоматически считываемые java переменные среды.
Переменные среды:
- Java 8:
JAVA_TOOL_OPTIONS,_JAVA_OPTIONS - Java 9 и более поздних версий:
JAVA_TOOL_OPTIONS,JDK_JAVA_OPTIONS_JAVA_OPTIONS
jaz также обрабатывает файлы аргументов @-files, также известные как файлы аргументов командной строки.
Можно ли передавать флаги агента Java при использовании средства?
Yes. Вы по-прежнему можете передавать -javaagent и другие флаги, которые не настраивают флаги, и jaz учитывает их.
Вы можете сохранить полезные диагностические флаги, такие как:
-
-Xlogдля ведения журнала -
-javaagentдля агентов инструментирования Application Insights или других агентов мониторинга производительности приложений (APM)
Совместимо ли средство с средами, отличными от Azure?
jaz разработан и протестирован в основном для контейнеров Azure и виртуальных машин, но он может технически работать в другом месте.
Однако некоторые расширенные оптимизации и будущие функции могут быть характерными для Azure.
Доступно ли средство для Windows Server?
jaz в настоящее время доступен для Linux в средах x64 и arm64.
Если у вас есть немедленная потребность в Windows Server, обратитесь к нам по адресу openjdk-support@microsoft.com
Почему она не работает с средами выполнения JRE или jlink?
Средство запуска команд Azure для Java протестировано и сертифицировано только с полными установками JDK. Он может работать неправильно с:
- Установки JRE (среда выполнения Java)
- Пользовательские среды выполнения на основе jlink
Полные установки JDK включают все средства и библиотеки, необходимые jaz для правильной работы. JRE и jlink пользовательские среды выполнения могут не использовать некоторые из этих компонентов, что может препятствовать jaz функционированию должным образом.
Если вам нужно использовать jaz, убедитесь, что вы выполняете полную установку JDK из поддерживаемой сборки На основе OpenJDK.