Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 拡張編


7. 明示管理ヒープ機能を使用したFullGCの抑止

アプリケーションサーバでは,Javaアプリケーション実行時に,Javaオブジェクトの配置先としてJavaヒープとは別のメモリ空間を使用できます。この機能を明示管理ヒープ機能といいます。明示管理ヒープ機能を効果的に使用することで,FullGCの発生を抑止できます。

この章では,明示管理ヒープ機能を使用したFullGCの抑止について説明します。ただし,JDK17以降を使用する場合は,明示管理ヒープ機能を使用できません。また,JDK11以前でG1GCを使用した場合にも,明示管理ヒープ機能を使用できません。G1GCまたはZGC使用時に-XX:+HitachiUseExplicitMemoryを指定した場合,メッセージ(Using -XX:+UseG1GC and -XX:+HitachiUseExplicitMemory at the same time is not supported.またはUsing -XX:+UseZGC and -XX:+HitachiUseExplicitMemory at the same time is not supported.)を標準出力に出力してJavaVMを終了します。

JDK11以前のアプリケーションサーバでは,明示管理ヒープ機能がデフォルトで有効になります。そのため,JDK11以前のアプリケーションサーバでG1GCを使用する場合は,-XX:-HitachiUseExplicitMemoryを指定してください。

G1GCでのFull GCの発生を抑止するチューニングは,マニュアル「アプリケーションサーバ システム設計ガイド」の「7.16 G1GCのチューニング」を参照してください。ZGCでは,Full GCの概念がなくFull GCの発生によるシステムの停止がないため,マニュアル「アプリケーションサーバ システム設計ガイド」の「7.18 ZGCのチューニング(JDK17以降の場合)」を参照して,Javaヒープサイズを適切にチューニングしてください。

〈この章の構成〉