Fornece respostas a perguntas comuns sobre o Iniciador de Comandos do Azure para Java.
Em que é que esta ferramenta difere do comando java?
O java comando executa a JVM HotSpot (Java Virtual Machine) com configurações padrão, a menos que explicitamente configurado pelo usuário.
jaz é um componente do Azure Command Launcher para Java que lança java com configuração de JVM testada em batalhas e otimizada para a nuvem, concebidos para melhorar o desempenho e a eficiência de custos em Azure VMs e containers.
Benefício principal: os desenvolvedores não precisam ajustar manualmente a JVM.
jaz faz isso por eles.
O que acontece se eu já definir algumas opções de JVM no meu ambiente?
Se a sua carga de trabalho incluir parâmetros de ajuste da JVM, o comando jaz não aplica os seus próprios valores de ajuste.
jaz lança java com as bandeiras que você escolheu.
Recomendamos remover as flags de afinação da sua carga de trabalho e deixar o Azure Command Launcher para Java aplicar as suas próprias.
Pode também configurar jaz para ignorar os seus parâmetros de ajuste e usar os seus valores predefinidos.
Considera usar esta configuração para validar jaz com alterações mínimas na configuração da tua carga de trabalho.
Para tal, defina a seguinte variável de ambiente:
export JAZ_IGNORE_USER_TUNING=1
A definição de ignorar ajuste do utilizador aplica-se a argumentos de linha de comandos, variáveis de ambiente lidas por java, e ficheiros @.
Também pode configurar jaz para saltar todos os seus padrões de afinação definindo a seguinte variável de ambiente:
export JAZ_BYPASS=1
A opção de bypass permite-te integrar o Azure Command Launcher para Java sem afetar a sintonia atual, mesmo que a tua carga de trabalho use o comportamento padrão do java comando.
Este comportamento pode ser útil para validar o comportamento da ferramenta antes de remover os parâmetros de ajuste da JVM.
Pode também ser útil pular a afinação ao solucionar um problema que pareça estar relacionado com a afinação da JVM.
Que opções de JVM são consideradas flags de otimização?
O jaz comando considera a maioria das bandeiras que começam com -X ou -XX como sendo uma bandeira de afinação, como -Xmx<size>.
Um exemplo notável de uma flag que começa com -X mas não é uma flag de afinação é -Xlog:<opts>.
Mais precisamente, cada opção de JVM é avaliada usando a lógica da lista seguinte. Esta lista descreve a lógica na versão mais recente do Azure Command Launcher para Java.
- Se a opção começar com qualquer texto que não seja
-X, não é um sinalizador de ajuste. - Se a opção corresponder a alguma destas expressões regulares, não é uma bandeira de afinação:
^-Xlog.+$^-XX:ErrorFile=.*$^-XX:[+-]?HeapDump.*$^-XX:[+-].*OnOutOfMemoryError$
- Caso contrário, a opção é um flag de ajuste.
Quando jaz procura flags de ajuste, examina os argumentos que lhe são passados e as variáveis de ambiente que java lêem automaticamente.
As variáveis ambientais são:
- Java 8:
JAVA_TOOL_OPTIONS,_JAVA_OPTIONS - Java 9 e posteriores:
JAVA_TOOL_OPTIONS,JDK_JAVA_OPTIONS,_JAVA_OPTIONS
jaz também trata dos ficheiros @, também conhecidos como ficheiros de argumentos de linha de comandos.
Posso passar flags de agente Java ao usar a ferramenta?
Sim. Você ainda pode passar -javaagent e outras bandeiras que não estão afinando bandeiras, e jaz honra-los.
Você pode manter sinalizadores de diagnóstico úteis, como:
-
-Xlogpara registo -
-javaagentpara Application Insights ou outros agentes de instrumentação do Application Performance Monitoring (APM)
A ferramenta é compatível com ambientes que não são Azure?
jaz foi projetado e testado principalmente para Contêineres e Máquinas Virtuais do Azure, mas tecnicamente pode ser executado em outro lugar.
No entanto, algumas otimizações avançadas e recursos futuros podem ser específicos do Azure.
A ferramenta está disponível para o Windows Server?
jaz está atualmente disponível para Linux em ambientes x64 e arm64.
Se você tiver uma necessidade imediata do Windows Server, entre em contato conosco em openjdk-support@microsoft.com
Porque é que não funciona com runtimes JRE ou jlink?
O Azure Command Launcher para Java foi testado e certificado apenas com instalações completas de JDK. Pode não funcionar corretamente com:
- Instalações JRE (Java Runtime Environment)
- Runtimes personalizados de jlink
As instalações completas do JDK incluem todas as ferramentas e bibliotecas necessárias jaz para funcionar corretamente. Os tempos de execução personalizados JRE e jlink podem não ter alguns destes componentes, o que pode impedir jaz que funcionem como esperado.
Se precisares de usar jaz, certifica-te de que estás a executar uma instalação completa do JDK a partir de uma build baseada em OpenJDK suportada.