Partilhar via


Perguntas frequentes sobre o Azure Command Launcher para Java (pré-visualização pública)

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.

  1. Se a opção começar com qualquer texto que não seja -X, não é um sinalizador de ajuste.
  2. 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$
  3. 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:

  • -Xlog para registo
  • -javaagent para 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

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.