PowerFlex Manager 3.8: Java Heap-fouten uit het geheugen leiden tot slechte prestaties
Summary: Uitputting van Java-geheugen leidt tot slechte PFxM UI-prestaties en willekeurige onverwachte fouten bij verschillende taken, zoals resource-inventarisatie, het implementeren van een nieuwe service of het toevoegen van een bestaande service. ...
Symptoms
De PFxM UI vertoont slechte prestaties en kan traag zijn om in te loggen en traag om verschillende secties binnen de UI op te halen. Verschillende taken, zoals het inventariseren van resources, het implementeren van een nieuwe service of het toevoegen van een bestaande service, kunnen onverwacht mislukken.
De asmui als asmManager Logboeken tonen Out-OfMemory Fouten:
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
Uitputting van het Java-geheugen leidt tot slechte PFxM UI-prestaties en willekeurige onverwachte storingen bij verschillende taken.
Cause
De asmui- en asmManager-componenten hebben een standaard Java heap-geheugenbereik van respectievelijk 128M-512M en 512M-6144M. In grotere omgevingen is dit geheugenbereik mogelijk niet voldoende om de verschillende processen correct te laten werken, wat leidt tot uitputting van het heap-geheugen.
Omgevingen met een groot aantal objecten in PFxM (bijv. 100+ bronnen, 3+ services met 32+ knooppunten, 10+ totale services) zullen profiteren van een grotere Java heap geheugenpool.
Resolution
De grootte van de Java-heap kan worden vergroot voor de asumui- en asmManager-componenten. In het verleden werd dit vaak gezien als de 'grootschalige patch' omdat een patch moest worden toegepast op de huidige PFxM-instantie en niet bleef bestaan bij PFxM-upgrades.
Een patch is niet langer vereist omdat deze update wordt toegepast op configuratiebestanden die blijven bestaan tijdens de PFxM-upgrade.
OPMERKING: Voordat de heap-waarden worden bijgewerkt, moet de PFxM VM worden geconfigureerd met ten minste 20 vCPU (10 cores / 2 sockets) en 56 GB geheugen.
Voor deze procedure moet de PFxM VM opnieuw worden opgestart.
1. Maak vanuit PFxM CLI een back-up van de huidige asmui- en asmManager Java-configuratiebestanden:
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. Maak een snapshot van de PFxM VM in Center.
3. Verhoog het bovenste bereik van de asmui-hoop tot 2048M:
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. Verhoog het bovenste bereik van de asmManager-heap naar 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. Start de PFxM VM opnieuw.
6. Controleer of de configuratiewijzigingen worden toegepast:
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. Nadat de wijzigingen zijn geïmplementeerd en het probleem is opgelost, verwijdert u de PFxM VM-snapshot in Center.
Beïnvloed
Versie 3.8.6 en nieuwer