Hitachi

 Hitachi Application Server V10 ユーザーズガイドWindows®用)


3.1.1 Javaのメモリー管理の方式について

Javaのメモリー管理では、プログラムが使用するメモリー領域を、GCやApplication Serverの機能を使用して制御します。適切にJavaのメモリー管理をするためには、使用するメモリー領域の構造やGCの処理の流れを理解する必要があります。Javaのメモリー管理の方式として、SerialGC、SerialGC と明示管理ヒープ機能(GCを抑止するための機能)の組み合わせ、およびG1GCという3種類から選択します。システムの要件に合わせた適切なメモリー管理の方式を選択することで、システム処理性能を向上できます。

Application ServerおよびApplication Server上で動作するアプリケーションのメモリーは、GCを使用して管理します。GCの実行中にリクエストが送信された場合、GCが終了するまでリクエスト処理が停止するため、GCを適切に実行できるかどうかが、システムの処理性能に大きく影響します。

Application ServerのJavaのメモリー管理の方式を示します。メモリー管理の方式によって、GCの動作が異なるため、システム要件に合わせてJavaのメモリー管理の方式を選択する必要があります。

項番

Javaのメモリー管理の方式

適したシステムおよび特徴

1

SerialGC

スループットを重視するシステムに適しています。

  • スループットが高い。

  • GCの実行時間を制御できない。

  • メモリーサイズのチューニングを実施することで、FullGCの発生を抑止できる。

2

SerialGCと明示管理ヒープ機能の組み合わせ

セッションを使用した一般的な Webフロントシステムに適しています。

  • スループットが高い。

  • GCの実行時間を制御できない。

  • セッションを利用したシステムでは、メモリーサイズのチューニングのほか、明示管理ヒープ機能を使用してセッションをExplicitヒープで管理することで、FullGCの発生を抑止できる。

3

G1GC

大規模なメモリーを使用するシステムやレスポンスを重視するシステムに適しています。

  • スループットが低い。

  • 一部のGCの実行時間を制御できる。

  • メモリーサイズのチューニングをすることで、FullGCの発生を抑止できる。

  • GCを実施するスレッド数を増やすことで、FullGCの発生を抑止できる。