Proporciona respuestas a preguntas comunes sobre el iniciador de comandos de Azure para Java.
¿Cómo es esta herramienta diferente del comando java?
El java comando ejecuta HotSpot JVM (Máquina virtual Java) con valores predeterminados a menos que el usuario lo configure explícitamente.
jaz es un componente del iniciador de comandos de Azure para Java que inicia java con valores predeterminados de ajuste de JVM probados en batalla y optimizados para la nube, diseñados para mejorar el rendimiento y la rentabilidad en máquinas virtuales y contenedores de Azure.
Ventaja clave: los desarrolladores no necesitan ajustar manualmente la JVM.
jaz lo hace para ellos.
¿Qué ocurre si ya he establecido algunas opciones de JVM en mi entorno?
Si la carga de trabajo incluye marcas de ajuste de JVM, el jaz comando no aplica sus propios valores predeterminados de ajuste.
jaz
java se inicia con las marcas que eligió.
Se recomienda quitar las banderas de ajuste de la carga de trabajo y permitir que el lanzador de comandos de Azure para Java aplique sus propias.
También puede configurar jaz para omitir los indicadores de ajuste y usar sus valores predeterminados de ajuste.
Considere la posibilidad de usar esta configuración para validar jaz con un cambio mínimo en la configuración de la carga de trabajo.
Para ello, establezca la siguiente variable de entorno:
export JAZ_IGNORE_USER_TUNING=1
La configuración omitir ajuste de usuario se aplica a los argumentos de la línea de comandos, las variables de entorno leídas por javay @-files.
También puede configurar jaz para omitir todos sus valores predeterminados de ajuste estableciendo la siguiente variable de entorno:
export JAZ_BYPASS=1
La opción de omisión le permite integrarse en el Iniciador de Comandos de Azure para Java sin afectar la configuración actual, incluso si la carga de trabajo usa el funcionamiento predeterminado del comando java.
Este comportamiento puede ser útil para validar el comportamiento de la herramienta antes de limpiar las marcas de ajuste de JVM.
También puede ser útil omitir la optimización al solucionar un problema que parece estar relacionado con el ajuste de JVM.
¿Qué opciones de JVM se consideran marcas de ajuste?
El comando jaz considera que la mayoría de las banderas que comienzan con -X o -XX son banderas de ajuste, como -Xmx<size>.
Un ejemplo notable de una marca que comienza por -X pero no es una marca de optimización es -Xlog:<opts>.
Más precisamente, cada opción de JVM se evalúa mediante la lógica de la lista siguiente. En esta lista se describe la lógica de la versión más reciente del iniciador de comandos de Azure para Java.
- Si la opción comienza con cualquier texto distinto de
-X, no es una bandera de ajuste. - Si la opción coincide con cualquiera de estas expresiones regulares, no es una bandera de ajuste.
^-Xlog.+$^-XX:ErrorFile=.*$^-XX:[+-]?HeapDump.*$^-XX:[+-].*OnOutOfMemoryError$
- De lo contrario, la opción es un indicador de ajuste.
Cuando jaz busca banderas de ajuste, examina los argumentos que se le pasan y las variables de entorno que java lee automáticamente.
Las variables de entorno son:
- Java 8:
JAVA_TOOL_OPTIONS,_JAVA_OPTIONS - Java 9 y versiones posteriores:
JAVA_TOOL_OPTIONS, ,JDK_JAVA_OPTIONS_JAVA_OPTIONS
jaz también controla @-files, también conocido como archivos de argumentos de línea de comandos.
¿Puedo pasar marcas de agente de Java al usar la herramienta?
Yes. Todavía puede pasar -javaagent y otras marcas que no están optimizando las marcas y jaz las respeta.
Puede mantener marcas de diagnóstico útiles como:
-
-Xlogpara el registro -
-javaagentpara Application Insights u otros agentes de instrumentación de supervisión del rendimiento de aplicaciones (APM)
¿La herramienta es compatible con entornos que no son de Azure?
jaz está diseñado y probado principalmente para contenedores y máquinas virtuales de Azure, pero técnicamente se puede ejecutar en otro lugar.
Sin embargo, algunas optimizaciones avanzadas y características futuras pueden ser específicas de Azure.
¿La herramienta está disponible para Windows Server?
jaz actualmente está disponible para Linux en entornos x64 y arm64.
Si tiene una necesidad inmediata de Windows Server, por favor póngase en contacto con nosotros en openjdk-support@microsoft.com
¿Por qué no funciona con los entornos de ejecución de JRE o jlink?
El iniciador de comandos de Azure para Java se ha probado y certificado solo con instalaciones completas de JDK. Puede que no funcione correctamente con:
- Instalaciones de JRE (Java Runtime Environment)
- Entornos de ejecución personalizados de jlink
Las instalaciones completas de JDK incluyen todas las herramientas y bibliotecas que jaz requieren para funcionar correctamente. Los entornos de ejecución personalizados JRE y jlink pueden carecer de algunos de estos componentes, lo que puede impedir jaz que funcione según lo previsto.
Si necesita usar jaz, asegúrese de que ejecuta una instalación completa de JDK desde una compilación compatible basada en OpenJDK.