PowerFlex Manager 3.8: Java-Heap-Fehler aufgrund von unzureichendem Arbeitsspeicher führen zu schlechter Leistung
Summary: Die Erschöpfung des Java-Heap-Speichers führt zu einer schlechten Leistung der PFxM-Benutzeroberfläche und zufälligen unerwarteten Ausfällen bei verschiedenen Aufgaben, z. B. bei der Ressourcenbestandsaufnahme, der Bereitstellung eines neuen Dienstes oder dem Hinzufügen eines vorhandenen Dienstes. ...
Symptoms
Die PFxM-Benutzeroberfläche weist eine schlechte Leistung auf und kann sich langsam anmelden und verschiedene Abschnitte innerhalb der Benutzeroberfläche nur langsam aufrufen. Verschiedene Aufgaben, z. B. die Ressourcenbestandsaufnahme, das Bereitstellen eines neuen Diensts oder das Hinzufügen eines vorhandenen Dienstes, können unerwartet fehlschlagen.
Die Spalte asmui und asmManager Protokolle zeigt Out-OfMemory Irrtümer:
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!/:?]
...
Auswirkungen
Die Erschöpfung des Java-Heap-Speichers führt zu einer schlechten Leistung der PFxM-Benutzeroberfläche und zufälligen unerwarteten Ausfällen bei verschiedenen Aufgaben.
Cause
Die asmui- und asmManager-Komponenten verfügen über einen standardmäßigen Java-Heap-Speicherbereich von 128 MB bis 512 MB bzw. 512 MB bis 6144 MB. In größeren Umgebungen reicht dieser Speicherbereich möglicherweise nicht aus, damit die verschiedenen Prozesse ordnungsgemäß ausgeführt werden können, was zu einer Erschöpfung des Heap-Speichers führt.
Umgebungen mit einer großen Anzahl von Objekten in PFxM (z. B. 100+ Ressourcen, 3+ Services mit 32+ Nodes, 10+ Services insgesamt) profitieren von einem größeren Java-Heap-Speicherpool.
Resolution
Die Java-Heap-Größe kann für die Komponenten asumui und asmManager erhöht werden. In der Vergangenheit wurde dies häufig als "umfangreicher Patch" angesehen, da ein Patch auf die aktuelle PFxM-Instanz angewendet werden musste und nicht über PFxM-Upgrades hinweg beibehalten wurde.
Ein Patch ist nicht mehr erforderlich, da dieses Update auf Konfigurationsdateien angewendet wird, die während des PFxM-Upgrades bestehen bleiben.
HINWEIS: Vor dem Aktualisieren der Heap-Werte muss die PFxM-VM mit mindestens 20 vCPU (10 Cores/2 Sockel) und 56 GB Arbeitsspeicher konfiguriert werden.
Für dieses Verfahren ist ein Neustart der PFxM-VM erforderlich. Planen Sie entsprechend.
1. Sichern Sie über die PFxM-CLI die aktuellen asmui- und asmManager-Java-Konfigurationsdateien:
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. Erstellen Sie einen Snapshot der PFxM-VM in der Mitte.
3. Erhöhen Sie den oberen Bereich des asmui-Heaps auf 2048 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. Erhöhen Sie den oberen Bereich des asmManager-Heap auf 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. Starten Sie die PFxM-VM neu.
6. Überprüfen Sie, ob die Konfigurationsänderungen übernommen wurden:
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. Nachdem die Änderungen implementiert wurden und das Problem behoben ist, löschen Sie den PFxM-VM-Snapshot in Center.
Zusammengepresst
Versionen 3.8.6 und höher