ページの先頭です。
ここから本文です。

よくあるご質問(サポートFAQ)

【WebOTX Application Server】エラーメッセージ「GC overhead limit exceeded」が発生する原因と対処方法(OTX-FAQ-000263)

質問内容

server_err.log に OutOfMemoryError が出力されていましたが、その理由が "GC overhead limit exceeded"でした。原因と対処方法を教えて下さい。

回答内容

これは、JDK 1.6 の Java VM に組み込まれている GC チューニング機構が影響しています。

簡潔に言えば、GC 処理に時間が掛かり過ぎている状態になると、それを Java VM 側が検知し、OutOfMemoryError と判断して例外を発行する仕組みです。
これがデフォルトで有効になっているため、本事象が発生しています。

具体的にはJava ヒープ領域が不足しているために、わずかな空き領域で処理を継続するために、フル GC を含む GC 処理が頻繁に行われている可能性があります。

回避方法の一つは、本チューニング機構を Java VM オプション指定で無効にすることです。

ログインが可能な状態であれば、運用管理コマンド(otxadmin)で下記のサブコマンドを実施することで、再起動後に設定が反映されます。

otxadmin> create-jvm-options "-XX\:-UseGCOverheadLimit"

ログインできない状態の場合、直接該当する設定ファイル内の定義を編集する必要があります。

一旦、ドメインを停止し、次のファイルを編集します。

{WebOTXインストールディレクトリ}/domains/{ドメイン名}/config/domain.xml
ファイル内の次の定義がある箇所において、下線部の箇所を追加してください。

<java-config classpath-suffix="" ...>
<!-- various required jvm-options -->
<!-- ant setup option -->
<system-jvm-options>-server</system-jvm-options>
:
<system-jvm-options>...</system-jvm-options>
<jvm-options>-XX:-UseGCOverheadLimit</jvm-options>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
</java-config>

修正後、WebOTX Application Serverを再起動して下さい。

再起動後も同事象が発生する場合には、メモリ不足となっている箇所を GC ログなどから特定し、根本的なメモリ不足の解決をしてください。


【対象製品】Application Server
【確認済みのバージョン】V7 V8
【確認済みのエディション】すべて
【確認済みの対象OS】すべて
【確認済みのJavaバージョン】Java SE 6.0
【コンポーネント】運用管理
【カテゴリー】トラブルシューティング

製品名カテゴリ

WebOTX
WebOTX Application Server

  • コンテンツID: 3150102348
  • 公開日: 2011年03月31日
  • 最終更新日:2018年08月21日

アンケート

サポート情報充実のためアンケートにご協力をお願いいたします。



コメント欄:
ここからページ共通メニューです。 ページ共通メニューを読み飛ばす。