2.1.2 プロセスごとに使用するメモリの見積もり
アプリケーションサーバの各プロセスで使用するメモリの使用量の見積もりについて説明します。
- 〈この項の構成〉
(1) アプリケーションサーバが使用する仮想メモリの使用量の見積もり
ここでは,仮想メモリの使用量の見積もり方法について説明します。なお,仮想メモリの使用量の計算式に使用しているJavaVM起動時のオプションの詳細については,「2.2.1(5) SerialGC使用時のJavaVMで使用するメモリ空間の構成とJavaVMオプション」を参照してください。
(a) 仮想メモリの使用量の計算式
仮想メモリの使用量(単位:メガバイト)の計算式を次に示します。
アプリケーションサーバの仮想メモリの使用量= A+B+C+(D+22)×E+G
(凡例)
-
A:Javaヒープサイズ
初期値は,JavaVM起動時の-Xmsオプションに指定した値です。この値は,アプリケーションサーバ起動中に,最大でJavaVM起動時の-Xmxオプションに指定した値まで拡張されます。なお,ZGCを使用する場合は,仮想メモリを多く必要とします。ZGCを使用する場合は,この値は-Xmxに指定した値の48倍としてください。これは物理メモリの実際の使用サイズには影響しません。詳細については「2.4 ZGCの仕組みとJavaVMのメモリチューニング(JDK17以降の場合)」を参照してください。
-
B:Metaspace領域サイズ
初期値は,JavaVMが割り当てた値です。この値は,アプリケーションサーバ起動中に,最大でJavaVM起動時の-XX:MaxMetaspaceSizeオプションに指定した値まで拡張されます。
-
C:ネイティブプログラム使用領域サイズ
ネイティブプログラム使用領域サイズの値について,次の表に示します。
表2‒2 ネイティブプログラム使用領域サイズの値 OS種別
使用領域サイズの値(単位:メガバイト)
Linux
600
-
D:アプリケーションサーバのスレッド数
アプリケーションサーバが使用するスレッド数です。アプリケーションサーバが使用するスレッド数については,マニュアル「uCosminexus Application Runtime ユーザーズガイド」のリソースの見積もりに関する説明を参照してください。
-
E:スタック領域サイズ
JavaVM起動時の-Xssオプションに指定した値です。
-
G:コードキャッシュ領域の最大サイズ
JavaVM起動時の-XX:ReservedCodeCacheSizeオプションに指定した値です。
(b) 仮想メモリの使用量を計算する場合の注意事項
-
ネイティブプログラム使用領域サイズの値は変動します。値が変動するのは次のような場合です。
-
ORBのトレースサイズを変更した場合
-
JDBCドライバの使用領域サイズの値を変更した場合
-
使用する製品のネイティブライブラリ使用領域サイズの値を変更した場合
このような場合,製品ごとのメモリ使用量をネイティブプログラム使用領域サイズの値に加えてください。製品ごとのメモリ使用量は,使用する製品のドキュメントに従って算出してください。
-
-
アプリケーションサーバの標準構成で使用する仮想メモリの使用量は,使用するソフトウェア製品の影響で,見積もり値よりも大きくなる場合があります。その場合の増加分については,仮想メモリの使用量の値に加えてください。増加分のメモリ使用量は,使用するソフトウェア製品のドキュメントに従い,製品ごとのメモリ使用量を算出してください。
-
Linuxの場合,メモリのスワップファイルが不足すると,システムがスローダウンします。仮想メモリの上限値を,実メモリサイズ分指定することをお勧めします。