5.8.2 Cヒープが不足した場合
(1) Cヒープ不足を示すメッセージログの出力内容
Cヒープ不足を示すメッセージログの出力形式を次に示します。この形式は,エラーリポートファイルと標準出力で共通です。
- Windowsの場合
Exception in thread <ThreadName> java.lang.OutOfMemoryError:requested <n> bytes [ for <message>].
Memory Status
-------------
Memory in use :使用率%
Physical memory :空きメモリサイズ /総メモリサイズ free
Virtual memory :空きメモリサイズ/総メモリサイズ free
Paging file :空き容量/総容量 free
Heap Status
-----------
<Javaヒープ情報>
-----------
Stack Trace
-----------
<スタックトレース>
JVM Internal Memory Status
--------------------------
<独自メモリ管理機能で管理している領域情報>
Insufficient memory for malloc. JVM generates core file.
----------- |
- AIX,またはLinuxの場合
Exception in thread <ThreadName> java.lang.OutOfMemoryError: requested <n> bytes [for <message>].
Memory Status
-------------
maximum size of data segment
soft(current) limit :getrlimit(RLIMIT_DATA)で取得したソフトリミット値 kbytes (16進数)
hard limit :getrlimit(RLIMIT_DATA)で取得したハードリミット値 kbytes (16進数)
current end of the heap :sbrk(0)によって取得した値
JVM allocation size by malloc :JavaVMが割り当てたメモリサイズ kbytes (16進数)
malloc information
total space in arena :mallinfo.arenaの値
number of ordinary blocks :mallinfo.ordblksの値
number of small blocks :mallinfo.smblksの値
number of holding blocks :mallinfo.hblksの値
space in holding block headers :mallinfo.hblkhdの値
space in small blocks in use :mallinfo.usmblksの値
space in free small blocks :mallinfo.fsmblksの値
space in ordinary blocks in use :mallinfo.uordblksの値
space in free ordinary blocks :mallinfo.fordblksの値
cost of enabling keep option :mallinfo.keepcostの値
Heap Status
-----------
<Javaヒープ情報>
-----------
Stack Trace
-----------
<スタックトレース>
-----------
JVM Internal Memory Status
--------------------------
<独自メモリ管理機能で管理している領域情報> |
このようなメッセージが出力された場合は,Cヒープを減らすなど,適切な対策をしてください。
出力項目について次に示します。
表5-27 Cヒープが不足した場合のメッセージログの出力項目
出力項目 | 説明 |
---|
ThreadName | Thread#getName()メソッドで取り出せるスレッド名称が出力されます。 |
n | メモリ確保要求サイズが出力されます。 |
message | 保守員による調査に必要な内部メッセージが出力されます。出力されない場合もあります。 |
Javaヒープ情報 | Javaヒープの使用状況が出力されます。 |
スタックトレース | メモリ不足の発生したスレッドがJava コードを実行しているスレッドである場合に,スタックトレースが出力されます。 コンパイル処理のようなJavaVMの内部処理を実行するスレッドでメモリ不足が発生した場合には出力されません。 |
(2) メモリ不足を示すメッセージの出力内容
Cヒープ不足を示すメッセージログが出力されている間にさらにメモリ不足が発生した場合は,処理の続行ができません。この場合は,次の形式の簡易メッセージが標準出力に出力されます。
java.lang.OutOfMemoryError:requested <n> bytes for <message> |
出力項目について次に示します。
表5-28 メモリ不足が発生した場合の簡易メッセージの出力項目
出力項目 | 説明 |
---|
n | メモリ確保要求サイズが出力されます。 |
message | 保守員による調査に必要な内部メッセージが出力されます。 |
(3) coreダンプの生成を示すメッセージの出力内容
簡易メッセージの出力処理中にさらにメモリ不足が発生した場合,メッセージおよびエラーログファイルの出力処理を中止して,coreダンプを生成します。coreダンプが生成されると,次の形式のメッセージが標準出力に出力されます。
Can't create logs because of memory shortage.
Insufficient memory for malloc. JVM generates core file |