Configurer le récupérateur de mémoire pour les processeurs de messages

Dans Edge pour Private Cloud 4.54.00 (qui s'exécute sur Java 21), le processeur de messages utilise le récupérateur de mémoire Garbage-First (G1GC) par défaut. Ce document explique comment configurer et vérifier les paramètres de récupération de mémoire sur le processeur de messages.

Personnaliser le récupérateur de mémoire sur les processeurs de messages

Cette section décrit la procédure de configuration d'autres paramètres de récupération de mémoire sur le processeur de messages Edge. Vous gérez les paramètres de récupération de mémoire en mettant à jour les propriétés de récupération de mémoire sur le processeur de messages. Pour ajuster une propriété de configuration, utilisez la syntaxe de jeton définie dans Configurer Edge.

Pour modifier les paramètres de récupération de mémoire sur les processeurs de messages, procédez comme suit :

  1. Vérifiez la propriété de récupération de mémoire
  2. Modifiez la récupération de mémoire sur les processeurs de messages

Vérifier la propriété de récupération de mémoire

Les étapes suivantes décrivent comment vérifier les propriétés de récupération de mémoire configurées :

  1. Recherchez les propriétés de récupération de mémoire dans le répertoire source du processeur de messages /opt/apigee/edge-message-processor/source à l'aide de la commande suivante :
    grep -riE "useG1GC|useZGC|useStringDeduplication" /opt/apigee/edge-message-processor/source
    
  2. Vérifiez que la sortie de cette commande affiche la configuration des propriétés de récupération de mémoire pour le processeur de messages :
    /opt/apigee/edge-message-processor/source/conf/system.properties:useG1GC={T}conf_system_useG1GC{/T}
    /opt/apigee/edge-message-processor/source/conf/system.properties:useZGC={T}conf_system_useZGC{/T}
    /opt/apigee/edge-message-processor/source/conf/system.properties:useStringDeduplication={T}conf_system_useStringDeduplication{/T}

    La chaîne entre les balises {T}{/T} correspond au nom de la propriété que vous pouvez définir dans le fichier .properties du processeur de messages.

Modifier la récupération de mémoire sur les processeurs de messages

Les étapes suivantes décrivent comment modifier les paramètres de récupération de mémoire sur les processeurs de messages Apigee :

  1. Ouvrez le /opt/apigee/customer/application/message-processor.properties fichier sur la machine du processeur de messages dans un éditeur. Si le fichier n'existe pas déjà, créez-le. Exemple :
    vi /opt/apigee/customer/application/message-processor.properties
    
  2. Ajoutez les lignes de configuration de récupération de mémoire souhaitées en fonction de votre profil cible :
    • Option A : Utiliser G1GC comme récupérateur de mémoire par défaut avec quelques modifications :
      conf_system_useG1GC=true
      conf_system_useStringDeduplication=true
      conf_system_g1gc.g1ReservePercent=15
    • Option B : Activer ZGC générationnel (facultatif pour les déploiements à très faible latence ) :
      conf_system_useG1GC=false
      conf_system_useZGC=true
      bin_setenv_max_meta_space_size=1024m
    • Option C : Activer un paramètre de récupération de mémoire générique :

      Définissez bin_setenv_ext_jvm_opts dans le fichier de remplacement .properties du composant (/opt/apigee/customer/application/message-processor.properties) pour configurer les propriétés de récupération de mémoire génériques, puis redémarrez le composant. Exemple :

      conf_system_useG1GC=false
      conf_system_useZGC=false
      bin_setenv_ext_jvm_opts="-XX:+UseParallelGC"
  3. Enregistrez les modifications.
  4. Assurez-vous que ce fichier de propriétés appartient à l'utilisateur apigee. Exemple :
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. Redémarrez le processeur de messages à l'aide de la commande suivante :
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. Si vous avez plusieurs processeurs de messages, répétez ces étapes sur tous les processeurs de messages.

Mettre à jour la déduplication de chaînes

Par défaut, la configuration G1GC définit UseStringDeduplication sur true, ce qui optimise l'allocation de mémoire du tas Java en permettant aux valeurs String identiques de partager un seul tableau de caractères. Pour désactiver la déduplication de chaînes, définissez conf_system_useStringDeduplication=false dans /opt/apigee/customer/application/message-processor.properties et redémarrez le processeur de messages, comme décrit dans Modifier la récupération de mémoire sur les processeurs de messages.

Vérifier la configuration de récupération de mémoire sur les processeurs de messages

Pour vérifier que les modifications de configuration de récupération de mémoire ont été appliquées sur le processeur de messages :

  1. Recherchez la propriété de récupération de mémoire dans le /opt/apigee/edge-message-processor/conf répertoire et vérifiez qu'elle a été définie avec la nouvelle valeur. Exemple :
    grep -riE "useG1GC|useZGC|g1gc\.|useStringDeduplication" /opt/apigee/edge-message-processor/conf
    
  2. Vérifiez que /opt/apigee/edge-message-processor/conf/system.properties reflète les valeurs que vous avez configurées. Par exemple, les paramètres Apigee Default GC (Récupération de mémoire par défaut Apigee) s'affichent comme suit :
    /opt/apigee/edge-message-processor/conf/system.properties:useG1GC=true
    /opt/apigee/edge-message-processor/conf/system.properties:useZGC=false
    /opt/apigee/edge-message-processor/conf/system.properties:g1gc.maxGCPauseMillis=200
    /opt/apigee/edge-message-processor/conf/system.properties:g1gc.initiatingHeapOccupancyPercent=45
    /opt/apigee/edge-message-processor/conf/system.properties:g1gc.g1ReservePercent=15
    /opt/apigee/edge-message-processor/conf/system.properties:useStringDeduplication=true
  3. Vérifiez que le processus JVM du processeur de messages en cours d'exécution a été démarré avec les indicateurs -XX: attendus :
    ps -ef | grep edge-message-processor | grep -E "UseG1GC|UseZGC"
    
    • Pour Apigee Default G1GC, vérifiez que la ligne de commande inclut : -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:InitiatingHeapOccupancyPercent=45 -XX:G1ReservePercent=15 -XX:+UseStringDeduplication -XX:MaxMetaspaceSize=1024m
    • Pour Generational ZGC (ZGC générationnel), vérifiez que la ligne de commande inclut : -XX:+UseZGC -XX:+ZGenerational -XX:MaxMetaspaceSize=1024m
  4. Si vous ne parvenez toujours pas à configurer les paramètres de récupération de mémoire, contactez l'assistance Apigee Edge.

Étape suivante