Interstage Application Server チューニングガイド |
目次
索引
![]() ![]() |
第7章 JDK/JREのチューニング | > 7.4 異常発生時の原因振り分け |
本節では、OutOfMemoryErrorがスローされた場合、考えられる原因とその対処方法を説明します。
なお、FJVMを使用でOutOfMemoryErrorがスローされた場合に出力されるメッセージ情報については、“メモリ領域不足事象発生時のメッセージ出力機能の強化”も参照してください。
ガーベジコレクションを繰り返しても、時間の経緯とともにメモリ消費量が増大する場合は、メモリリークの可能性があります。
メモリリークの結果、Javaのヒープ不足が発生しOutOfMemoryErrorがスローされる場合があります。
ガーベジコレクションのログを採取して、Javaヒープの消費状況を確認してください。
ガーベジコレクションのログを採取する方法は、“ガーベジコレクションのログ出力”を参照してください。
通常、OutOfMemoryErrorは、Javaヒープ不足が原因でスローされます。
ガーベジコレクションのログを採取して、Javaヒープの消費状況を確認してください。
Javaヒープの空き容量がないことが確認されたら、Javaヒープをチューニングしてください。
ガーベジコレクションのログを採取する方法は、“ガーベジコレクションのログ出力”を参照してください。
Javaヒープのチューニング方法は、“Javaヒープのチューニング”を参照してください。
JavaヒープやOSの仮想メモリに余裕があるにもかかわらず、ユーザ空間内にメモリを確保できなかった場合、OutOfMemoryErrorがスローされます。
また、多量のスレッドを生成して、多量のスタックがユーザ空間内に割り当てられ、ユーザ空間不足になった場合、次のOutOfMemoryErrorがスローされます。
java.lang.OutOfMemoryError: unable to create new native thread
ユーザ空間が不足している場合は、Javaヒープまたはスタックのサイズを小さくするなどのチューニングを行ってください。
スタックのサイズをチューニングする方法は、“スタックのチューニング”を参照してください。
Javaヒープのチューニング方法は、“Javaヒープのチューニング”を参照してください。
なお、仮想メモリに余裕がある場合は、Javaプロセスを複数起動して、プロセス多重度を上げる方法もあります。J2EEアプリケーションの場合、J2EEのチューニングを行ってください。J2EEのチューニング方法の詳細は、“J2EEのチューニング”を参照してください。
OSの仮想メモリが不足した場合にも、OutOfMemoryErrorがスローされます。
なお、仮想メモリが不足してスレッドが生成できない場合、OutOfMemoryErrorに次の情報が付加されます。
java.lang.OutOfMemoryError: unable to create new native thread
仮想メモリが不足した場合は、他の不要なプロセスを終了して仮想メモリに余裕を持たせるか、物理メモリ(RAM)またはスワップファイルを拡張して仮想メモリを増やすようにチューニングを行ってください。
目次
索引
![]() ![]() |