Partager via


Questions fréquemment posées sur le lanceur de commandes Azure pour Java (préversion publique)

Fournit des réponses aux questions courantes sur le lanceur de commandes Azure pour Java.

Comment cet outil est-il différent de la commande Java ?

La java commande exécute la JVM HotSpot (Machine virtuelle Java) avec des paramètres par défaut, sauf si elle est configurée explicitement par l’utilisateur. jaz est un composant du lanceur de commandes Azure pour Java qui démarre java avec des paramètres JVM optimisés pour le cloud, éprouvés, conçus pour améliorer les performances et l'efficacité en termes de coûts sur les machines virtuelles et conteneurs Azure.

Avantage clé : les développeurs n’ont pas besoin de régler manuellement la machine virtuelle JVM. jaz le fait pour eux.

Que se passe-t-il si j’ai déjà défini certaines options JVM dans mon environnement ?

Si votre charge de travail inclut des indicateurs de réglage JVM, la jaz commande n’applique pas ses propres paramètres par défaut. jaz lance java avec les indicateurs que vous avez choisis.

Nous vous recommandons de supprimer les indicateurs de paramétrage de votre charge de travail et de laisser le lanceur de commandes Azure pour Java s’appliquer lui-même.

Vous pouvez également configurer jaz pour ignorer vos indicateurs de réglage et utiliser ses paramètres par défaut. Envisagez d’utiliser cette configuration pour valider jaz avec une modification minimale de la configuration de votre charge de travail. Pour ce faire, définissez la variable d’environnement suivante :

export JAZ_IGNORE_USER_TUNING=1

Le paramètre d’optimisation de l’utilisateur ignore s’applique aux arguments de ligne de commande, aux variables d’environnement lues par javaet aux @-files.

Vous pouvez également configurer jaz pour ignorer tous ses paramètres par défaut en définissant la variable d’environnement suivante :

export JAZ_BYPASS=1

L’option de contournement vous permet d’intégrer le lanceur de commandes Azure pour Java sans affecter votre réglage actuel, même si votre charge de travail utilise le comportement par défaut de la java commande. Ce comportement peut être utile pour valider le comportement de l’outil avant de nettoyer les indicateurs de réglage JVM.

Il peut également être utile de contourner le réglage lors de la résolution d’un problème qui semble être lié au réglage de JVM.

Quelles options JVM sont considérées comme des indicateurs de réglage ?

La jaz commande considère la plupart des indicateurs qui commencent par -X ou -XX sont un indicateur de réglage, tel que -Xmx<size>. Un exemple notable d’un indicateur qui commence par -X mais qui n’est pas un indicateur de réglage est -Xlog:<opts>.

Plus précisément, chaque option JVM est évaluée à l’aide de la logique dans la liste suivante. Cette liste décrit la logique dans la version la plus récente du lanceur de commandes Azure pour Java.

  1. Si l’option commence par un texte autre que -X, il ne s’agit pas d’un indicateur de réglage.
  2. Si l’option correspond à l’une de ces expressions régulières, il ne s’agit pas d’un indicateur de réglage :
    • ^-Xlog.+$
    • ^-XX:ErrorFile=.*$
    • ^-XX:[+-]?HeapDump.*$
    • ^-XX:[+-].*OnOutOfMemoryError$
  3. Sinon, l’option est un indicateur de réglage.

Lorsque jaz recherche des drapeaux de réglage, il examine les arguments qui lui sont passés et les variables d’environnement que java lit automatiquement. Les variables d’environnement sont les suivantes :

  • Java 8 : JAVA_TOOL_OPTIONS, _JAVA_OPTIONS
  • Java 9 et versions ultérieures : JAVA_TOOL_OPTIONS, JDK_JAVA_OPTIONS, _JAVA_OPTIONS

jaz gère également les fichiers @-files, également appelés fichiers d’argument de ligne de commande.

Puis-je transmettre des indicateurs d’agent Java lors de l’utilisation de l’outil ?

Yes. Vous pouvez toujours passer -javaagent et d’autres indicateurs qui ne sont pas des indicateurs de réglage, et jaz les honore. Vous pouvez conserver des indicateurs de diagnostic utiles tels que :

  • -Xlog pour la journalisation
  • -javaagent pour Application Insights ou d’autres agents d’instrumentation APM (Application Performance Monitoring)

L’outil est-il compatible avec les environnements non-Azure ?

jaz est conçu et testé principalement pour les conteneurs Azure et les machines virtuelles, mais il peut s’exécuter techniquement ailleurs. Toutefois, certaines optimisations avancées et fonctionnalités futures peuvent être spécifiques à Azure.

L’outil est-il disponible pour Windows Server ?

jaz est actuellement disponible pour Linux sur les environnements x64 et arm64. Si vous avez besoin immédiatement de Windows Server, contactez-nous à l’adresse openjdk-support@microsoft.com

Le lanceur de commandes Azure pour Java a été testé et certifié uniquement avec des installations JDK complètes. Elle peut ne pas fonctionner correctement avec :

  • Installations JRE (environnement runtime Java)
  • Runtimes jlink personnalisés

Les installations complètes de JDK incluent tous les outils et bibliothèques dont jaz a besoin pour fonctionner correctement. Les runtimes personnalisés JRE et jlink peuvent manquer de certains de ces composants, ce qui peut empêcher jaz de fonctionner comme prévu.

Si vous devez utiliser jaz, vérifiez que vous exécutez une installation complète de JDK à partir d’une build OpenJDK prise en charge.