Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El iniciador de comandos Azure para Java (jaz) es una utilidad ligera que simplifica cómo Java los desarrolladores ejecutan sus aplicaciones en Azure.
Al aplicar de forma inteligente Java opciones de máquina virtual (JVM) adaptadas para entornos en la nube, la herramienta reduce la sobrecarga de configuración y mejora el uso de recursos de forma predeterminada, con un mayor potencial para mejorar el rendimiento.
Esta herramienta es ideal para desarrolladores que:
- Quiere mejores valores predeterminados de JVM sin profundizar en las guías de optimización.
- Desarrolle e implemente microservicios nativos en la nube con marcos como Spring Boot, Quarkus o Micronaut.
- Se prefieren flujos de trabajo basados en contenedores, como Kubernetes y OpenShift.
- Implemente cargas de trabajo de Java en Azure Container Apps, Azure Kubernetes Service, Red Hat OpenShift en Azure o Azure Virtual Machines.
Características clave
- 🛠 Ajusta automáticamente las marcas de JVM para las implementaciones nativas de la nube.
-
🚀 Una experiencia Plug and Play. Simplemente colóquelo en su Dockerfile o en su script de inicio, reemplazando el comando
javaporjaz. - ☁️ Optimizado para entornos de Azure.
- 🔧 Personalizable a través de variables de entorno. Hay varias maneras de implementar de forma segura los cambios de configuración.
Entornos soportados
El iniciador de comandos Azure para Java se puede usar siempre que el iniciador de Java esté disponible en entornos basados en Linux. Se ha validado y probado en las siguientes plataformas de CI/CD y Azure:
- Azure Kubernetes Service (AKS)
- Azure Container Apps
- Azure App Service
- Azure Functions
- Red Hat OpenShift en Azure (ARO)
- Azure Virtual Machines
- Azure DevOps
- GitHub Codespaces
- Acciones de GitHub
Importante
El iniciador de comandos de Azure para Java lee información de cgroup v1 y v2 para determinar los recursos disponibles y ajustar la JVM en consecuencia.
Sondea los archivos dentro /sys/fs/cgroup de para detectar límites de memoria y otras restricciones de recursos.
Si el sistema de archivos de cgroup no está montado en /sys/fs/cgroup, es posible que el iniciador de comandos de Azure para Java no detecte correctamente los límites de contenedorización, lo que provoca errores de rendimiento deficientes o incluso errores de memoria insuficiente.
No hemos identificado un escenario en ninguno de los entornos admitidos en los que esto es un problema, pero podría ser posible encontrar esta limitación en entornos personalizados.
Para obtener más información, vea "¿Por qué importa mi punto de montaje de cgroup?".
Versión preliminar pública
El iniciador de comandos Azure para Java ya está disponible en versión preliminar pública. Lea el anuncio de versión preliminar pública para obtener una introducción a esta herramienta y sus ventajas.
Cómo funciona
El Azure iniciador de comandos para Java se encuentra entre el comando de inicio de la máquina virtual o el contenedor y JVM. Al iniciar la herramienta, se hace lo siguiente:
- Detecta el entorno de nube (por ejemplo, límites de contenedor y memoria disponible).
- Analiza el tipo de carga de trabajo y selecciona las marcas de ajuste de JVM más adecuadas, como:
- Dimensionamiento del montón.
- Selección y optimización del recolector de basura.
- Configuración de registro y diagnóstico según sea necesario.
- Inicia un proceso de Java, pasándole las marcas de ajuste y cualquier argumento proporcionado por el usuario.
- Retransmite invisiblemente señales stdout, stderr, stdin y OS hacia y desde el proceso de Java.
- Supervisa el proceso de Java y retransmite su código de salida cuando finaliza.
Ejemplo de uso
El iniciador de comandos Azure para Java es un reemplazo de drop-in para el comando java, sin necesidad de cambios en el código. Simplemente reemplace java con jaz en sus scripts de inicio; por ejemplo, reemplace java -jar foo.jar con jaz -jar foo.jar.
En lugar de ajustar las opciones de JVM manualmente:
JAVA_OPTS="-XX:... several JVM tuning flags"
java $JAVA_OPTS -jar myapp.jar
Utilice jaz:
jaz -jar myapp.jar
De forma predeterminada, jaz aplica su ajuste cuando no detecta ninguna marca de optimización proporcionada por el usuario.
Si los argumentos de la línea de comandos de Java o las variables de entorno de opciones de Java ya incluyen indicadores de ajuste proporcionados por el usuario (como -X* o -XX*), jaz conserva esa configuración y no añade los suyos. Para obligar a jaz a aplicar su configuración (sin eliminar las opciones de configuración especificadas por el usuario), establezca JAZ_IGNORE_USER_TUNING=1.
La aplicación puede beneficiarse automáticamente de:
- Valores predeterminados probados para cargas de trabajo nativas y de contenedor en la nube.
- Se ha reducido el desperdicio de memoria en la nube.
- Mejor rendimiento de inicio y calentamiento.
Instalación
Para obtener instrucciones sobre cómo instalar el iniciador de comandos de Azure para Java en Linux o cómo instalar imágenes de contenedor, consulte la página Instalación.
Plan de desarrollo
- ⚙️ Perfiles de configuración de JVM
- 📦 Compatibilidad con AppCDS
- 🔄 Ajuste continuo
- 📊 Telemetría
- 📦 Compatibilidad con Leyden
Registro de cambios
Puede consultar las notas de la versión de Azure Command Launcher for Java y el registro de cambios en la página Versiones de Azure Command Launcher for Java.
Telemetría
Azure Iniciador de comandos para Java recopila datos de uso y los envía a Microsoft para ayudar a mejorar nuestros productos y servicios. Para más información, lea nuestra declaración de privacidad.