13.6.1 HADBサーバ開始時にメモリが不足した場合の対処方法
HADBサーバ開始時にKFAA40007-Eメッセージが出力された場合の対処方法を次に示します。対処方法は,サーバ定義adb_sys_memory_limitオペランドの指定の有無によって異なります。
(1) サーバ定義adb_sys_memory_limitオペランドを指定している場合
サーバ定義adb_sys_memory_limitオペランドのHADBサーバが使用するメモリの最大サイズに,次に示す計算式で求めた値以上の値を指定してください。
計算式(単位:メガバイト)
|
|
- 変数の説明
-
get_size:KFAA40007-Eメッセージの変数bb....bbの値(単位:バイト)
(2) サーバ定義adb_sys_memory_limitオペランドを指定していない場合
KFAA40007-Eメッセージに出力された,不足しているメモリの種類を示す変数aa....aaを確認してください。aa....aaによって対策が異なります。
(a) aa....aaがPROCESSの場合
次に示す対処を行ってください。
-
確保できるプロセス共通メモリの最大サイズを見積もる
サーバ定義adb_sys_proc_area_maxオペランドの確保できるプロセス共通メモリの最大サイズに,次に示す計算式で求めた値以上の値を指定してください。
計算式(単位:メガバイト)
- 変数の説明
-
max_size:adb_sys_proc_area_maxオペランドの確保できるプロセス共通メモリの最大サイズに指定していた値(単位:メガバイト)
get_size:KFAA40007-Eメッセージの変数bb....bbの値(単位:バイト)
-
HADBサーバを再度起動する
adbstartコマンドを実行して,HADBサーバを開始してください。
(b) aa....aaがTHREADの場合
次に示す対処を行ってください。
-
確保できるリアルスレッド固有メモリの最大サイズを見積もる
サーバ定義adb_sys_rthd_area_maxオペランドの確保できるリアルスレッド固有メモリの最大サイズに,次に示す計算式で求めた値以上の値を指定してください。
計算式(単位:メガバイト)
- 変数の説明
-
max_size:adb_sys_rthd_area_maxオペランドの確保できるリアルスレッド固有メモリの最大サイズに指定していた値(単位:メガバイト)
get_size:KFAA40007-Eメッセージの変数bb....bbの値(単位:バイト)
-
HADBサーバを再度起動する
adbstartコマンドを実行して,HADBサーバを開始してください。
(c) aa....aaがHEAPの場合
-
不要なプロセスがないかどうかを確認してください。不要なプロセスがある場合は,そのプロセスを終了または削除してください。そのあとで,adbstartコマンドを実行して,HADBサーバを開始してください。
-
手順1.を実施してもメモリが不足する場合,OSを再起動してください。そのあとで,adbstartコマンドを実行して,HADBサーバを開始してください。
-
手順2.を実施してもメモリが不足する場合,カーネルパラメタの設定を変更し,プロセスで使用できるメモリの上限を大きくしてください。OSを再起動したあとで,adbstartコマンドを実行して,HADBサーバを開始してください。
(d) aa....aaがSHAREの場合
-
不要なプロセス,および不要な共有メモリがないかどうかを確認してください。不要なプロセスがある場合は終了してください。不要な共有メモリがある場合は削除してください。そのあとで,adbstartコマンドを実行して,HADBサーバを開始してください。
-
手順1.を実施しても共有メモリが不足する場合,OSを再起動してください。そのあとで,adbstartコマンドを実行して,HADBサーバを開始してください。
-
手順2.を実施しても共有メモリが不足する場合,カーネルパラメタの設定を変更し,共有メモリの上限を大きくしてください。OSを再起動したあとで,adbstartコマンドを実行して,HADBサーバを開始してください。
なお,HADBサーバの共有メモリにHugePagesを適用している場合,カーネルパラメタがHugePagesを使用できる設定になっていることを確認してください。詳細については,「6.2 カーネルパラメタの見積もり」を参照してください。