Fornece respostas para perguntas comuns sobre o Iniciador de Comandos do Azure para Java.
Como essa ferramenta é diferente do comando java?
O java comando executa a JVM do HotSpot (Máquina Virtual Java) com configurações padrão, a menos que explicitamente configurada pelo usuário.
jaz é um componente do Iniciador de Comandos do Azure para Java que executa java com configurações de tuning da JVM amplamente testadas e otimizadas para a nuvem, projetadas para melhorar o desempenho e a eficiência de custos em VMs e contêineres do Azure.
Principal benefício: 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 em meu ambiente?
Se a carga de trabalho incluir sinalizadores de ajuste JVM, o jaz comando não aplicará seus próprios padrões de ajuste.
jaz
java é iniciado com os sinalizadores escolhidos.
É recomendável remover os sinalizadores de ajuste da carga de trabalho e permitir que o Iniciador de Comandos do Azure para Java aplique o seu próprio.
Você também pode configurar jaz para ignorar os sinalizadores de ajuste e usar seus padrões de ajuste.
Considere usar essa configuração para validar jaz com uma alteração mínima na configuração da carga de trabalho.
Para fazer isso, defina a seguinte variável de ambiente:
export JAZ_IGNORE_USER_TUNING=1
A configuração de ajuste de ignorar usuário se aplica a argumentos de linha de comando, variáveis de ambiente lidas por javae @-files.
Você também pode configurar jaz para ignorar todos os seus padrões de ajuste definindo a seguinte variável de ambiente:
export JAZ_BYPASS=1
A opção de bypass permite que você adote o Inicializador de Comandos do Azure para Java sem afetar o ajuste atual, mesmo que sua carga de trabalho utilize o comportamento padrão do comando java.
Esse comportamento pode ser útil para validar o comportamento da ferramenta antes de limpar sinalizadores de ajuste JVM.
Também pode ser útil ignorar o ajuste ao solucionar um problema que parece estar relacionado ao ajuste de JVM.
Quais opções de JVM são consideradas opções de ajuste?
O jaz comando considera a maioria dos sinalizadores que começam com -X ou -XX como um sinalizador de ajuste, como -Xmx<size>.
Um exemplo notável de um sinalizador que começa com -X , mas não é um sinalizador de ajuste é -Xlog:<opts>.
Mais precisamente, cada opção JVM é avaliada usando a lógica na lista a seguir. Esta lista descreve a lógica na versão mais recente do Iniciador de Comandos do Azure para Java.
- Se a opção começar com qualquer texto diferente do que
-X, então não é um sinalizador de ajuste. - Se a opção corresponder a qualquer uma dessas expressões regulares, não será um sinalizador de ajuste:
^-Xlog.+$^-XX:ErrorFile=.*$^-XX:[+-]?HeapDump.*$^-XX:[+-].*OnOutOfMemoryError$
- Caso contrário, a opção é um indicador de configuração.
Quando jaz busca sinalizadores de ajuste, ele examina os argumentos passados para ele e as variáveis de ambiente que java leem automaticamente.
As variáveis de ambiente são:
- Java 8:
JAVA_TOOL_OPTIONS,_JAVA_OPTIONS - Java 9 e posterior:
JAVA_TOOL_OPTIONS, ,JDK_JAVA_OPTIONS_JAVA_OPTIONS
jaz também manipula @-files, também conhecidos como arquivos de argumento de linha de comando.
Posso passar sinalizadores de agente java ao usar a ferramenta?
Yes. Você ainda pode passar -javaagent e outras bandeiras que não estão ajustando bandeiras, e jaz as honra.
Você pode manter sinalizadores de diagnóstico úteis, como:
-
-Xlogpara registro em log -
-javaagentpara Application Insights ou outros agentes de instrumentação do APM (Application Performance Monitoring)
A ferramenta é compatível com ambientes que não são do Azure?
jaz é 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 atualmente está disponível para o Linux em ambientes x64 e arm64.
Se você tiver uma necessidade imediata do Windows Server, entre em contato conosco em openjdk-support@microsoft.com
Por que não funciona com runtimes JRE ou jlink?
O Iniciador de Comandos do Azure para Java foi testado e certificado apenas com instalações completas do JDK. Pode não funcionar corretamente com:
- Instalações do JRE (Java Runtime Environment)
- Ambientes de execução de jlink personalizados
As instalações completas do JDK incluem todas as ferramentas e bibliotecas que jaz precisam funcionar corretamente. Os runtimes personalizados de JRE e jlink podem não conter alguns desses componentes, o que pode impedir que jaz funcione conforme esperado.
Se você precisar usar jaz, verifique se está executando uma instalação completa do JDK de um build baseado em OpenJDK com suporte.