PowerFlex Manager 3.8: メモリ不足 Java ヒープエラーによるパフォーマンス低下
Summary: Javaヒープ メモリーの枯渇により、PFxM UIのパフォーマンスが低下し、リソース インベントリー、新しいサービスのデプロイ、既存のサービスの追加などのさまざまなタスクに対してランダムな予期しない障害が発生します。
Symptoms
PFxM UIはパフォーマンスが悪く、ログインに時間がかかり、UI内のさまざまなセクションの表示に時間がかかる場合があります。リソースのインベントリ、新しいサービスのデプロイ、既存のサービスの追加など、さまざまなタスクが予期せず失敗することがあります。
「 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 UIのパフォーマンスが低下し、さまざまなタスクに対して予期しない障害がランダムに発生します。
Cause
asmui コンポーネントと asmManager コンポーネントのデフォルトの Java ヒープ・メモリー範囲は、それぞれ 128M-512M と 512M-6144M です。大規模な環境では、このメモリ範囲は、さまざまなプロセスを正しく実行するのに十分ではなく、ヒープメモリの枯渇につながる可能性があります。
PFxMに多数のオブジェクトがある環境(例:100+リソース、32+ノードを持つ3+サービス、合計10+サービス)は、より大きなJavaヒープメモリプールの恩恵を受けます。
Resolution
Java ヒープ・サイズは、asumui および asmManager コンポーネントに対して増やすことができます。以前は、パッチを現在のPFxMインスタンスに適用する必要があり、PFxMアップグレード間で保持されないため、これは一般的に「大規模なパッチ」と見なされていました。
このアップデートは、PFxMアップグレード後も保持される構成ファイルに適用されるため、パッチは不要になりました。
メモ: ヒープ値を更新する前に、少なくとも20個のvCPU(10コア/2ソケット)と56 GBのメモリーを使用してPFxM VMを構成する必要があります。
この手順では、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.CenterでPFxM VMのスナップショットを作成します。
3.asmuiヒープの上限範囲を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.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 VMを再起動します。
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.変更が実装され、問題が解決したら、CenterでPFxM VMスナップショットを削除します。
影響
バージョン3.8.6以降