Interstage Application Server チューニングガイド
目次 索引 前ページ次ページ

第7章 JDK/JREのチューニング> 7.2 FJVM> 7.2.10 FJVMログ

7.2.10.4 出力例と調査例

 本節では、Solaris版JDK/JRE 1.4での出力例を元に説明します。

--------------------------------------------------------------------------------
  #### Java VM: Java HotSpot(TM) Server VM (1.4.2_FUJITSU_MODIFIED-B** mixed mode)
  >>>> Logging process start. [pid=7886] Time=Thu Aug 14 16:09:01 2004

(1) 異常終了箇所の情報

 異常終了箇所に関する情報が確認できます。
 libjvm.soのsysThreadAvailableStackWithSlack関数の近くでSIGSEGV(メモリアクセスで不正なセグメントを参照)が発生しています。
 本例の場合、Java VM内で異常が発生していると判断します。
 異常終了箇所がJavaアプリケーション内でないため、異常発生時のスタックトレース情報を調査します。
 本例の場合、com.appli.ap.business.AL02ABB00000.toStringの延長で不正なアクセスが発生しているので、そこからAL02ABB00000.javaの489行目で不正なアクセスを招きそうな箇所がないか調べます。


Unexpected Signal : SIGSEGV [0xb] occurred at PC=0xff092068, pid=3058, nid=1
Function name=sysThreadAvailableStackWithSlack
Library=/opt/FJSVawjbk/jdk14/jre/lib/sparc/fjvm/libjvm.so

Current Java thread:
0xfb8e2850 - 0xfb8e4b7c at com.appli.ap.business.AL02ABB00000.toString(AL02ABB00000.java:489)
0xfb8e2850 - 0xfb8e4b7c at com.appli.ap.business.AL02ABB00000.toString(AL02ABB00000.java:520)
                        at java.lang.String.valueOf(String.java:1942)
                        at java.lang.StringBuffer.append(StringBuffer.java:365)
- locked <f6db38d8> (a java.lang.StringBuffer)
                        at com.appli.ap.business.AL02ABB25201.doExecute(AL02ABB25201.java:774)
                        at com.appli.ap.formula.AFCC6842.doDelegate(AFCC6842.java:221)
                        at com.appli.ap.formula.ejb.session.AFSF6801.doExecuteOrdinarily(AFSF6801.java:381)
                        at com.appli.ap.formula.ejb.session.FJAFSF6801_AFSF6801RemoteImpl.doExecuteOrdinarily(FJAFSF6801_AFSF6801RemoteImpl.java:464)
- locked <df672838> (a com.appli.ap.formula.ejb.session.FJAFSF6801_AFSF6801RemoteImpl)
                        at com.appli.ap.formula.ejb.session._FJAFSF6801_AFSF6801RemoteImpl_Tie._invoke(_FJAFSF6801_AFSF6801RemoteImpl_Tie.java:76)
0xfb98c930 - 0xfb98cc68 at com.fujitsu.ObjectDirector.CORBA.ServerRequest.call_invoke(ServerRequest.java:961)
                        at com.fujitsu.ObjectDirector.PortableServer.POA.MsgRecv(POA.java:2578)
                        at com.fujitsu.ObjectDirector.PortableServer.POAManager.MsgRecv(POAManager.java:1061)
                        at com.fujitsu.ObjectDirector.PortableServer.POAnc.MsgRecv(POAnc.java:163)

Dynamic libraries:
0x10000 /opt/FJSVawjbk/jdk14/bin/java
0xff370000 /usr/lib/libthread.so.1
0xff3fa000 /usr/lib/libdl.so.1
〜〜〜〜〜〜〜
略
〜〜〜〜〜〜〜
0xbef70000 /lib/libgen.so.1
0xbd6b0000 /lib/libextpiswu.so
0xbef50000 /opt/FJSVawjbk/jdk14/jre/lib/sparc/libioser12.so

Local Time = Thu Aug 14 16:09:01 2004
Elapsed Time = 9885

注意:

 Error IDの行が出力されている場合、Error IDとして出力されている値は、Java VMが内部処理矛盾を自己検出した場合に出力する内部情報コードです。SIGSEGVやSIGBUSなどOSが検出した異常の場合には、常に同じ値(4F530E435050****)が出力されます.そのためError IDの先頭が「4F530E435050」で始まるコードの場合は、通常、意味を持ちません。Error IDの先頭が「4F530E435050」以外で始まるコードの場合には、障害情報検索時や判断時のキーワード情報としての意味を持ちます。


#
# HotSpot Virtual Machine Error : SIGSEGV (0xb)
#  [ pc=0xff092068, pid=3058(0xbf2), nid=1(0x00000001), tid=0x00034d10 ]
#
# Please report this error to FUJITSU
#
# Java VM: Java HotSpot(TM) Server VM (1.4.2_FUJITSU_MODIFIED-B** mixed mode)
〜〜〜〜〜〜〜
〜〜〜〜〜〜〜

(2)異常終了時のシグナルハンドラ情報(Solaris版/Linux版)

 異常終了時のシグナルハンドラに関する情報が確認できます。
 本例では、すべて「(in VM)」表示なので、シグナルハンドラの登録変更に関する問題はありません。

##>> Signal Handlers
 VM signal handler[1]=0xfe1ec0a0, VM signal handler[2]=0xfe4ff780, SIG_DFL=0x0, SIG_IGN=0x1, INT_SIG=(16,16), ASYNC_SIG=(17,17)
  SIGSEGV :signal handler=0xfe4ff780 (in VM *)
  SIGPIPE :signal handler=0xfe1ec0a0 (in VM)
  SIGBUS :signal handler=0xfe1ec0a0 (in VM *)
  SIGILL :signal handler=0xfe1ec0a0 (in VM)
  SIGFPE :signal handler=0xfe1ec0a0 (in VM)
  INTERRUPT_SIGNAL :signal handler=0xfe4ff010 (in VM +)
  ASYNC_SIGNAL :signal handler=0xfe1ec0a0 (in VM)

(3)異常終了時のJavaヒープ領域に関する情報

 異常終了時のJavaヒープ領域に関する情報が確認できます。

 JDK/JRE 1.4のFJVMの場合:
  「split eden generation」が「New世代領域」、
  「tenured generation」が「Old世代領域」、
  「compacting perm gen」が「Permanent世代領域」
 に関する情報です。

 JDK/JRE 1.3のFJVMの場合:
  「new generation」が「New世代領域」、
  「tenured generation」が「Old世代領域」、
  「permanent generation」が「Permanent世代領域」
 に関する情報です。

 本例の場合、異常終了時点における「New世代領域」+「Old世代領域」の領域(-Xmxで最大量が指定される領域)には、空きがあることが判ります。
 また「Permanent世代領域」に対しても、余裕があることが判ります。

注意:

 パーセントで示されている値は、異常終了した時点でFJVMがJavaヒープ用に利用可能な状態にしている(コミットしている)メモリ量に対する比率です。利用可能な上限値に対する比率ではありません。
 パーセントで示されている値は参照せず、K(キロ)単位で表示されているメモリ使用量の値と、オプションで指定された値(デフォルト値を含む)とを比較して判断してください。

##>> Heap
 split eden generation total 113728K, used 75256K [0xc0800000, 0xc7710000, 0xd5d50000)
  eden1 space 56832K,  32% used [0xc3f90000, 0xc517e048, 0xc7710000)
  eden2 space 56896K, 100% used [0xc0800000, 0xc3f90000, 0xc3f90000)
 tenured generation   total 113920K, used 56905K [0xd5d50000, 0xdcc90000, 0xf5cd0000)
   the space 113920K,  49% used [0xd5d50000, 0xd94e24c0, 0xd94e2600, 0xdcc90000)
 compacting perm gen  total 16384K, used 3658K [0xf5cd0000, 0xf6cd0000, 0xf9cd0000)
   the space 16384K,  22% used [0xf5cd0000, 0xf6062a10, 0xf6062c00, 0xf6cd0000]
(-Xms=3584K, -Xmx=524288K, -XX:PermSize=16384K, -XX:MaxPermSize=65536K)

目次 索引 前ページ次ページ

Copyright 20078 FUJITSU LIMITED