PowerFlex Manager 3.8 : Les erreurs de segment de mémoire Java insuffisante entraînent des performances médiocres
Summary: L’épuisement de la mémoire du segment de mémoire Java entraîne de mauvaises performances de l’interface utilisateur PFxM et des échecs aléatoires inattendus dans diverses tâches telles que l’inventaire des ressources, le déploiement d’un nouveau service ou l’ajout d’un service existant. ...
Symptoms
L’interface utilisateur de PFxM présente des performances médiocres et peut être lente à se connecter et lente à extraire différentes sections au sein de l’interface utilisateur. Diverses tâches, telles que l’inventaire des ressources, le déploiement d’un nouveau service ou l’ajout d’un service existant, peuvent échouer de manière inattendue.
La commande asmui et asmManager Les journaux s’affichent Out-OfMemory Erreurs:
2024-06-01 01:17:24 [http-nio-9030-exec-4] (DeviceController.java:626) [ERROR] getDeviceList() - Exception from service call
java.lang.OutOfMemoryError: Java heap space
2024-06-01 01:17:24 [http-nio-9030-exec-4] (BaseController.java:304) [ERROR] Found generic exception in Controller
java.lang.OutOfMemoryError: Java heap space
2024-06-01 01:17:24 [http-nio-9030-exec-9] (DeviceController.java:626) [ERROR] getDeviceList() - Exception from service call
java.lang.OutOfMemoryError: Java heap space
2024-06-01 01:17:24 [http-nio-9030-exec-9] (BaseController.java:304) [ERROR] Found generic exception in Controller
java.lang.OutOfMemoryError: Java heap space
2024-06-01 01:17:26 [http-nio-9030-exec-6] (DeviceController.java:626) [ERROR] getDeviceList() - Exception from service call
java.lang.OutOfMemoryError: Java heap space
2024-06-01 01:17:26 [http-nio-9030-exec-6] (BaseController.java:304) [ERROR] Found generic exception in Controller
java.lang.OutOfMemoryError: Java heap space
...
2024-07-10 00:40:50 [http-nio-9030-exec-11] (RestTemplateResponseErrorHandler.java:47) [ERROR] REST Error: {
"detailMessage" : "Handler dispatch failed; nested exception is java.lang.OutOfMemoryError: Java heap space",
"cause" : {
"cause" : {
"cause" : null,
"stackTrace" : [ ],
"message" : "Java heap space",
"localizedMessage" : "Java heap space",
"suppressed" : [ ]
...
"stackTrace" : [ ],
"suppressedExceptions" : [ ],
"status" : 500,
"timestamp" : "2024-07-10T04:40:50.986+00:00",
"error" : "Internal Server Error",
"path" : "/AsmManager/job/",
"messages" : [ {
"messageBundle" : null,
"messageCode" : null,
"severity" : null,
"category" : null,
"displayMessage" : "Runtime error",
"responseAction" : null,
"detailedMessage" : "Handler dispatch failed; nested exception is java.lang.OutOfMemoryError: Java heap space",
"agentId" : null,
"correlationId" : null,
"timeStamp" : "2024-07-10T04:40:50.987+00:00",
"sequenceNumber" : 0
} ]
}
2024-07-10 00:40:50 [http-nio-9030-exec-11] (JobsController.java:83) [ERROR] getJobs() - Exception from service call
com.dell.asm.rest.common.exception.LocalizedWebApplicationException: HTTP 500 Internal Server Error
at com.dell.pfxm.springboot.helpers.error.RestTemplateResponseErrorHandler.handleError(RestTemplateResponseErrorHandler.java:64) ~[RestCommon-0.7.0-SNAPSHOT.jar!/:?]
...
Impact
L’épuisement de la mémoire du segment de mémoire Java entraîne de mauvaises performances de l’interface utilisateur PFxM et des échecs aléatoires inattendus pour diverses tâches.
Cause
Les composants asmui et asmManager ont une plage de mémoire du segment de mémoire Java par défaut de 128M-512M et 512M-6144M respectivement. Dans les environnements de grande taille, cette plage de mémoire peut ne pas être suffisante pour permettre aux différents processus de s’exécuter correctement, ce qui entraîne l’épuisement de la mémoire du segment.
Les environnements comportant un grand nombre d’objets dans PFxM (par exemple, + de 100 ressources, + de 3 services avec + de 32 nœuds, + de 10 services au total) bénéficieront d’un pool de mémoire de segment de mémoire Java plus important.
Resolution
La taille du segment de mémoire Java peut être augmentée pour les composants asumui et asmManager. Dans le passé, ce correctif était généralement considéré comme un « correctif à grande échelle », car un correctif devait être appliqué à l’instance PFxM actuelle et ne persistait pas entre les mises à niveau PFxM.
Aucun correctif n’est désormais nécessaire, car cette mise à jour est appliquée aux fichiers de configuration qui persistent lors de la mise à niveau de PFxM.
Remarque : Avant de mettre à jour les valeurs du segment, la machine virtuelle PFxM doit être configurée avec au moins 20 processeurs virtuels (10 cœurs/2 sockets) et 56 Go de mémoire.
Cette procédure nécessite un redémarrage de la machine virtuelle PFxM, planifiez en conséquence.
1. À partir de la CLI PFxM, sauvegardez les fichiers de configuration Java asmui et asmManager actuels :
sudo cp /opt/Dell/ASM/conf/asmui-jvm-props.conf asmui-jvm-props.conf.bak sudo cp /opt/Dell/ASM/conf/asmManager-jvm-props.conf asmManager-jvm-props.conf.bak
2. Prenez un snapshot de la machine virtuelle PFxM dans Center.
3. Augmentez la plage supérieure du tas asmui à 2 048 M :
echo '-Xloggc:/opt/Dell/ASM/logs/gc_asmui.log -XX:+PrintHeapAtGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=10M -XX:-HeapDumpOnOutOfMemoryError -XX:HeapDumpPath="/opt/Dell/ASM/logs/" -Xms128m -Xmx2048m -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -Dhttp.nonProxyHosts="localhost.localdomain|localhost|127.0.0.1" -Djava.io.tmpdir=/opt/Dell/ASM/temp -Dspring.profiles.active=main' > /opt/Dell/ASM/conf/asmui-jvm-props.conf
4. Augmentez la plage supérieure du segment de mémoire asmManager à 18432M :
echo '-Xloggc:/opt/Dell/ASM/logs/gc_asmManager.log -XX:+PrintHeapAtGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=10M -XX:-HeapDumpOnOutOfMemoryError -XX:HeapDumpPath="/opt/Dell/ASM/logs/" -Xms512m -Xmx18432m -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -Dhttp.nonProxyHosts="localhost.localdomain|localhost|127.0.0.1" -Djava.io.tmpdir=/opt/Dell/ASM/temp -Dspring.profiles.active=main' > /opt/Dell/ASM/conf/asmManager-jvm-props.conf
5. Redémarrez la machine virtuelle PFxM.
6. Vérifiez que les modifications de configuration ont bien été appliquées :
cat /opt/Dell/ASM/conf/asmui-jvm-props.conf | grep -E 'Xms|Xmx' cat /opt/Dell/ASM/conf/asmManager-jvm-props.conf | grep -E 'Xms|Xmx'
7. Une fois les modifications mises en œuvre et le problème résolu, supprimez le snapshot de la machine virtuelle PFxM dans Center.
Touchés
Versions 3.8.6 et supérieures