Traitement des incidents liés aux anomalies de mémoire des serveurs IBM Business Process Manager

Si vous utilisez IBM® Business Process Manager avec un système d'exploitation 32 bits ou une machine virtuelle Java (JVM), vous noterez peut-être des anomalies liées aux performances du serveur et à sa disponibilité, y compris des exceptions OutOfMemory. Ces problèmes s'affichent lorsque le système d'exploitation ou la machine virtuelle Java ne dispose pas de suffisamment de mémoire accessible pour prendre en charge tous les processus en cours d'exécution.

Si les performances de serveur sont gravement dégradées ou si une exception OutOfMemory s'affiche, envisagez le passage à un système d'exploitation ou à une machine virtuelle Java 64 bits. Faute de quoi, utilisez les informations du tableau suivant pour identifier les solutions possibles des problèmes de mémoire spécifiques.

Tableau 1. Problèmes de mémoire observables et actions préconisées
Comportement observé Actions possibles
Les performances du serveur sont gravement dégradées (une pagination se produit)
  • Vérifiez qu'il y a suffisamment de mémoire physique pour la prise en charge de IBM BPM et tous les autres processus en cours. Utilisez l'outil d'analyse de mémoire système pour votre plateforme (par exemple, vmstat pour les plateformes Linux ou UNIX ou Task Manager pour les plateformes Windows).

    Notez que certains systèmes d'exploitation 32 bits ne peuvent utiliser qu'une quantité spécifique de mémoire physique.

  • Arrêtez tous les processus en cours d'exécution qui ne sont pas essentiels pour IBM BPM (par exemple, fenêtres de navigateur supplémentaires ou autres applications installées).
  • Etablissez une connexion DB2 distante et utilisez-la à la place de l'instance DB2 locale. Arrêtez tous les processus DB2 locaux sur la machine locale.
  • Si vous créez des processus, utilisez un environnement de test d'unité distant et Process Center plutôt que d'exécuter les processus sur votre machine locale.
Les performances du serveur sont gravement dégradées (pas de pagination) et l'activité de récupération de place est excessive
  • Augmentez la taille maximale de segment de mémoire Java. La taille du segment mémoire doit être suffisante pour contenir tous les objets Java requis mais assez petite pour prévenir les goulots d'étranglement provoqués par de grandes quantités de mémoire native.
  • Ajustez le segment de mémoire JVM.

Pour plus d'informations sur l'optimisation des paramètres de taille du segment mémoire et de récupération de place, voir Optimisation de la machine virtuelle IBM pour Java et Paramètres de la machine virtuelle Java.

Problèmes de mémoire. Par exemple, l'instance occupe une grande partie de la mémoire disponible

Réduisez la taille du cache de contexte de branche. La réduction de la taille du cache de 64 à 16 fait une énorme différence dans la quantité de mémoire que l'instance utilise, au prix toutefois d'une légère dégradation des performances.

Pour modifier la taille du cache, localisez le fichier 00static.xml dans PROFILE_HOME\config\cells\nom_cellule\nodes\nom_noeud\servers\nom_serveur\process-server\config\system. Dans ce fichier, modifiez la valeur branch-context-max-cache-size.

Exception OutOfMemory
  • Si l'exception est immédiatement précédée d'une activité de récupération de place fréquente qui ne libère pas d'espace dans le segment de mémoire Java, utilisez les informations de la ligne précédente pour augmenter la taille maximale du segment de mémoire Java, ajuster le segment de mémoire JVM ou les deux.
  • Si l'exception n'est pas immédiatement précédée d'une activité de récupération de place, cela peut indiquer que la mémoire native d'une ressource est saturée. Il convient alors de diminuer la taille de segment de mémoire Java maximale pour accorder davantage d'espace à la mémoire native dans l'espace d'adresse JVM.
  • Si l'exception se produit lorsque vous tentez de télécharger desktop Process Designer (obsolète) à partir de la console Process Center, effectuez les étapes suivantes.
    1. Quittez la console Process Center.
    2. Utilisez la console d'administration WebSphere pour définir une propriété personnalisée pour le conteneur Web :
      1. Cliquez sur Serveurs > Types de Serveurs > Serveurs d'application WebSphere > nom_serveur > Conteneur Web > Propriétés personnalisées.
      2. Ajoutez la propriété com.ibm.ws.webcontainer.channelwritetype et attribuez-lui la valeur synch.
      3. Enregistrez les modifications et quittez la console d'administration.
    3. Redémarrez la console Process Center et reprenez le téléchargement de desktop Process Designer.
Exception OutOfMemoryError avec une exception de blocage d'unité d'exécution correspondante Si vous rencontrez cette exception OutOfMemoryError, vous pouvez peut-être résoudre le problème en procédant comme suit :
  1. Augmentez le nombre de processus autorisé en ajoutant les lignes suivantes au bas du fichier /etc/security/limits.conf (ou en modifiant les valeurs si les lignes existent déjà dans le fichier) :
    # - nproc - max number of processes
    * soft nproc 65535
    * hard nproc 65535
    Si vous effectuez une installation en tant qu'utilisateur non-administrateur, ajoutez ou modifiez également les lignes suivantes pour votre nom d'utilisateur :
    nom_utilisateur soft nproc 65535
    nom_utilisateur hard nproc 65535

    Enregistrez et fermez le fichier, puis déconnectez-vous et reconnectez-vous. Vous pouvez vérifier le nombre de processus actuellement autorisé en exécutant la commande ulimit -u.

  2. Vérifiez l'existence d'un fichier nommé /etc/security/limits.d/90-nproc.conf, qui remplace la valeur nproc valeur définie dans le fichier limits.conf. Si le fichier 90-nproc.conf existe, éditez-le et définissez les valeurs nproc qui sont spécifiées à l'étape précédente. Exemple :
    /etc/security/limits.d/90-nproc.conf
    * soft nproc 65535
  3. Enregistrez et fermez les fichiers, puis déconnectez-vous et reconnectez-vous. Vous pouvez vérifier le nombre de processus actuellement autorisé en exécutant la commande ulimit -u.