Description de l'utilisation de la mémoire

Pour déboguer les fuites de mémoire, vous devez comprendre les mécanismes qui peuvent entraîner des problèmes de mémoire, comment la machine virtuelle Java utilise LE HEAP, comment la machine virtuelle Java utilise le stockage virtuel z/OS® et les causes possibles d'une exception java.lang.OutOfMemoryError .

Des problèmes de mémoire peuvent se produire dans le processus Java™ via les mécanismes suivants:
  • Une fuite de mémoire native (C/C++) augmentant l'utilisation de LE HEAP (machines virtuelles 31 bits uniquement), ce qui peut correspondre à une utilisation excessive de Subpool2, Key 8 ou de mémoire, et à une taille Working Set excessive de l'espace d'adressage du processus.
  • Une fuite d'objet Java dans le segment de mémoire géré par Java. La fuite est provoquée par des erreurs de programmation dans l'application ou le middleware. Ces fuites d'objet provoquent une augmentation de la quantité de données actives qui subsistent après un cycle de récupération de place.
  • Taille de segment de mémoire Java incorrecte. Par exemple, il est possible que le tas soit trop petit compte tenue de la quantité de mémoire demandée par l'application. Cependant, une taille de tas trop importante peut entraîner un manque de stockage dans la zone privée MVS pour d'autres composants, tels que la pile de threads native. Utilisez l'option -Xmx pour optimiser la taille du tas pour vos application et environnement.
  • Une sous-allocation des zones de stockage. Par exemple, si les paramètres REGION, MEMLIMIT ou MAXTHREADS sont trop bas, ou si des zones de stockage sont en conflit avec des zones de stockage pour d'autres produits, tels que IBM® CICS®.