PowerFlex Manager 3.8: Помилки Java Heap із нестачею пам'яті призводять до низької продуктивності
Summary: Виснаження пам'яті динамічної пам'яті Java призводить до низької продуктивності інтерфейсу PFxM і випадкових несподіваних збоїв при виконанні різних завдань, таких як інвентаризація ресурсів, розгортання нової служби або додавання існуючої служби. ...
Symptoms
Інтерфейс PFxM демонструє низьку продуктивність і може бути повільним для входу в систему та повільним для підтягування різних розділів у інтерфейсі користувача. Різні завдання, такі як інвентаризація ресурсів, розгортання нової служби або додавання існуючої, можуть несподівано вийти з ладу.
Об'єкт asmui і asmManager журнали показує Out-OfMemory Помилки:
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!/:?]
...
Вплив
Виснаження пам'яті в динамічній пам'яті Java призводить до низької продуктивності інтерфейсу PFxM і випадкових несподіваних збоїв при виконанні різних завдань.
Cause
Компоненти asmui та asmManager мають стандартний діапазон пам'яті Java 128M-512M та 512M-6144M відповідно. У великих середовищах цей діапазон пам'яті може бути недостатнім для належного виконання різних процесів, що призводить до виснаження пам'яті динамічної пам'яті.
Середовища з великою кількістю об'єктів у PFxM (наприклад, 100+ ресурсів, 3+ сервісів з 32+ вузлами, 10+ всього сервісів) виграють від більшого пулу пам'яті Java.
Resolution
Розмір динамічної пам'яті Java може бути збільшений для компонентів asumui та asmManager. У минулому це зазвичай вважалося «великомасштабним патчем», оскільки патч мав бути застосований до поточного екземпляра PFxM і не зберігався під час оновлень PFxM.
Виправлення більше не потрібне, оскільки це оновлення застосовується до файлів конфігурації, які зберігаються протягом оновлення PFxM.
ПРИМІТКА. Перед оновленням значень динамічної пам'яті PFxM VM повинен бути налаштований не менше 20 vCPU (10 ядер / 2 сокета) і 56 ГБ пам'яті.
Ця процедура вимагає перезавантаження PFxM VM, плануйте відповідно.
1. З PFxM CLI створіть резервну копію поточних файлів конфігурації asmui та asmManager Java:
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. Зробіть знімок віртуальної машини PFxM у центрі.
3. Збільште верхню амплітуду купи асмуї до 2048М:
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. Збільште верхній діапазон купи 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. Перезапустіть віртуальну машину PFxM.
6. Переконайтеся, що зміни в конфігурації застосовано:
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. Після того, як зміни буде впроваджено та проблему буде вирішено, видаліть знімок PFxM VM у центрі.
Вплив
Версії 3.8.6 і новіші