WebOTX Manual V11.1 (第6版) 目次を表示 |
メモリの割り当て量の不足、システムの資源不足の場合、”OutOfMemoryError”が発生し、 アプリケーションの実行に失敗することがあります。
次の内容は、Webコンテナの動作モードとして「スタンダードモード」を選択している場合の確認方法、および対処方法です。アドバンスドモードを利用している場合は[TPシステム(Standard) >OutOfMemory発生への対応]を参照してください。
${INSTANCE_ROOT}/logs/server.logおよび、${INSTANCE_ROOT}/logs/agent.logに、”OutOfMemoryError”が 記録されているかを確認します。
もしくは、運用管理コンソール(http://Webサーバ名:ポート番号/admin/)の「統計情報」 −「JavaVMの統計情報」によって、Java VMの空きメモリの情報が確認できます。ただし、メモリ不足の 状態が継続している場合には、運用管理コンソールが正しく動作できないことがあります。
Java VMのヒープメモリに空きがあるにもかかわらず、”OutOfMemoryError”となっている 場合には、Permanent領域の不足が考えられます。"java.lang.OutOfMemoryError: PermGen space"というメッセージが 出力されている場合は、Permanent領域の不足です。
メモリ割り当て量の増加
WebOTXの動作する Java VMに割り当てているメモリ量を増やすことが考えられます。640MBの メモリを割り当てる場合には、Java VMのオプションで“-Xmx640m”のように指定します。 メモリ割り当て量の変更の詳細については、 [構築・運用 >チューニング > チューニングのための事前確認 > メモリ使用量の確認]を参照してください。
Permanent領域の増加
Java VMのヒープメモリに空きがあるにもかかわらず、”OutOfMemoryError”が発生している 場合には、Permanent領域を増やすことが考えられます。Permanent領域を最大128MBにする場合 には、Java VMのオプションで“-XX:MaxPermSize=128m”のように指定します。メモリ割り当て量の 変更については、 [構築・運用 >チューニング > チューニングのための事前確認 > メモリ使用量の確認]を参照してください。
システム資源
WebOTXの動作するシステムの資源(メモリ、スレッド、プロセス毎のスレッド)が不足している
場合には、システムの資源の見直しを行ってください。”OutOfMemoryError”の後に”unable to
create new native thread”が表示されている場合には、オペレーティングシステムでスレッドを
生成することができない状態と考えられますので、システムの状態を確認してください。
HP-UXの場合には、システムのプロセス毎のスレッド数の上限値も確認してください。HP-UX11iの
場合には、プロセス毎のスレッド数の上限値は、カーネルパラメータのmax_thread_procに
あたりますので、これを変更します。変更する手順については、HP-UXのマニュアルを参照して
ください。
Red Hat Enterprise Linux AS 4.0の場合は、/proc/sys/kernel/threads-maxでシステム全体の
スレッド数の最大値が設定されますので、必要であれば変更してください。変更する手順については、
OSのマニュアルを参照してください。
アプリケーションでメモリリークを起こしているために、”OutOfMemoryError”が発生している場合が あります。この場合には、WebOTXを起動している時間に応じて、空きメモリが減っていき、 Javaのガベージコレクションが動作しても、空きメモリが増えなくなってしまいます。 運用管理コンソール(http://Webサーバ名:ポート番号/)の「統計情報」−「JavaVMの統計情報」 によって、Java VMの空きメモリの情報が確認できます。通常であれば、空きメモリが少なく なったところで、Javaのガベージコレクションが動作し空きメモリが増えます。メモリリークが 発生している場合には、時間の経過ととともに空きメモリが減少していきます。
アプリケーションのメモリリークが疑われるときには、アプリケーションのコードを見直す 必要があります。メモリリークをさらに詳しく調べるには、Javaの-Xrunhprofオプションを使って プロファイル情報を採取します。-Xrunhprofオプションを使うとパフォーマンスが低下しますので、 評価環境で実施されることをお勧めします。-Xrunhprofオプションは、例えば、Java VMの次の ようなオプションになります。
-Xrunhprof:cutoff=0,heap=all,file=/tmp/java.prof
Java VMオプションを追加するには、otxadminコマンドを使用して次のコマンドを実行します。
otxadmin> create-jvm-options --user <ユーザ名> --password <パスワード> --host <ホスト名> --port <管理ポート> -Xrunhprof\\:cutoff=0,heap=all,file=/tmp/java.prof
オプションを追加したらドメインを停止します。
ドメインを起動後、必要な操作(APの実行など)が終わったら、ドメインを停止する 前に-Xrunhprofオプションを削除します(削除も、統合運用管理ツールやotxadminコマンドを 利用します)。
ドメインの停止により、上記のオプションであれば、/tmp/java.profにメモリ状況の プロファイル情報が出力されますので、これを解析します。解析には、HPjmeterなどが利用 できます。HPjmeterは、Hewlett-PackardのWebサイトよりダウンロードできます。
なお、プロファイルデータを取得するには、WebOTXが利用するメモリに加えて、プロファイル データ採取用のメモリが必要になります。標準の状態ではメモリ不足になる事が考えられますので 適宜増やしてください。