Cosminexus アプリケーションサーバ V8 機能解説 保守/移行/互換編
Cヒープが不足した場合,次の順序でメッセージ出力およびダンプ出力,またはcoreダンプの生成が実行されます。
それぞれの出力形式を次に示します。
Cヒープ不足を示すメッセージログの出力形式を次に示します。この形式は,エラーリポートファイルと標準出力で共通です。
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
-----------
<スタックトレース>
Insufficient memory for malloc. JVM generates core file.
-----------
|
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
-----------
<スタックトレース>
-----------
|
Exception in thread <ThreadName> java.lang.OutOfMemoryError: requested <n> bytes [for <message>]. Heap Status ----------- <Javaヒープ情報> ----------- Stack Trace ----------- <スタックトレース> ----------- |
このようなメッセージが出力された場合は,Cヒープを減らすなど,適切な対策をしてください。
出力項目について次に示します。
表5-26 Cヒープが不足した場合のメッセージログの出力項目
| 出力項目 | 説明 |
|---|---|
| ThreadName | Thread#getName()メソッドで取り出せるスレッド名称が出力されます。 |
| n | メモリ確保要求サイズが出力されます。 |
| message | 保守員による調査に必要な内部メッセージが出力されます。出力されない場合もあります。 |
| Javaヒープ情報 | Javaヒープの使用状況が出力されます。 |
| スタックトレース | メモリ不足の発生したスレッドがJava コードを実行しているスレッドである場合に,スタックトレースが出力されます。 コンパイル処理のようなJavaVMの内部処理を実行するスレッドでメモリ不足が発生した場合には出力されません。 |
Cヒープ不足を示すメッセージログが出力されている間にさらにメモリ不足が発生した場合は,処理の続行ができません。この場合は,次の形式の簡易メッセージが標準出力に出力されます。
java.lang.OutOfMemoryError:requested <n> bytes for <message> |
出力項目について次に示します。
表5-27 メモリ不足が発生した場合の簡易メッセージの出力項目
| 出力項目 | 説明 |
|---|---|
| n | メモリ確保要求サイズが出力されます。 |
| message | 保守員による調査に必要な内部メッセージが出力されます。 |
簡易メッセージの出力後は,ワトソンログが起動され,ダンプ出力が実行されます。ただし,ワトソンログが正常に出力できない場合がありますので,標準出力に出力される処理結果のメッセージを確認してください。
次のメッセージは,ワトソンログの起動に失敗した場合に出力されます。
WatosonLog process generated.But couldn't generate dump file,because of resource shortage. |
次のメッセージは,ワトソンログの起動後,ダンプ出力に失敗した場合に出力されます。
Couldn't generate dump file,because of resource shortage. |
これらの処理に成功した場合は,次に示すメッセージが出力されます。ただし,この場合もワトソンログが正常にダンプ出力しない場合があります。このメッセージが出力された場合も,実際にダンプが出力されているかどうかを確認してください。
Although Dr.Watson process finished successfully,dump file isn't always generated. Check your directory where dump file is stored. |
簡易メッセージの出力処理中にさらにメモリ不足が発生した場合,メッセージおよびエラーログファイルの出力処理を中止して,coreダンプを生成します。coreダンプが生成されると,次の形式のメッセージが標準出力に出力されます。
Can't create logs because of memory shortage. Insufficient memory for malloc. JVM generates core file |
All Rights Reserved. Copyright (C) 2008, 2011, Hitachi, Ltd.