Jump to content 日本-日本語

製品  >  ソフトウェア  >  HP- UX Developer Edge

JVMのコアダンプ解析を支援する「SKIT」の実力

HP-UX/Integrityサーバー お問い合せ
コンテンツに進む
JVMのコアダンプ解析を支援する「SKIT」の実力
HPは、JVMのコアダンプ解析を実現するサポータビリティ・ツールキット(以下、SKIT)を新たに開発し、「ミッションクリティカル Java(以下、MC Java)サポートソリューション」の一環として提供している。ここでは、プロダクション環境でのトラブルシューティングでとくに優れた威力を発揮するSKITを取り上げ、その実力を明らかにする。
JVMのコアダンプ解析を支援する「SKIT」の実力
サポータビリティ・ツールキット(SKIT)のメカニズム
コアダンプ解析ツールCore Analyzer
2005年6月
テクニカルライター  吉川和巳

サポータビリティ・ツールキット(SKIT)のメカニズム

メインフレームや商用UNIX上に構築されたミッションクリティカル・システムでは、プロダクション環境で障害が発生した場合には「コアダンプ解析」を実施し、原因を究明するのが一般的である。しかし、JVMは Javaにおけるダンプ解析に必要とされる知識レベルは非常に高いものが要求され、且つ 解析する為の情報収集が重要な点となる為、コアファイルの解析は一筋縄ではいかない。

そこでHPでは、JVMサポートにおける生産性、サポータビリティを向上するSKITを新たに開発した。SKITは、単なるプロファイリング・ツールと異なり、プロダクション環境でのトラブルシューティングでとくに優れた威力を発揮するツールである。

図1は、MC JavaサポートソリューションにおけるJavaアプリケーション構成である。この図が示すように、SKITと MC plug-inという2つのコンポーネントが連携して動作する。

 
SKITのJavaアプリケーション構成
図1:SKITのJavaアプリケーション構成

プリフライト・チェック

SKITでは、JVMの起動前に「プリフライト・チェック」と呼ばれる事前調査を実施する。具体的には、「skit pfc」というコマンドを入力するだけで、以下の2点についてチェック可能だ。

  • HP JVMの実行に適したパッチがHP-UXに適用されているかチェックする
  • HP JVMの実行環境の情報を収集したファイルpfc.txtを作成する
  このうち、pfc.txtには以下のような情報が記録される。
   
 
# more $SKIT_HOME/log/pfc.txt
 
Operating System
================
OSバージョン
HP-UX B.11.11 U
 
Machine Architecture
====================
ハードウェアのアーキテクチャ
  9000/785/J6700

( 中略)

System parameters
=================
  Parameter      Current Dyn Planned      Module      Version
=====================================================================
  NSTRBLKSCHED
NSTREVENT
NSTRPUSH
NSTRSCHED
STRCTLSZ
STRMSGSZ
acctresume
acctsuspend
aio_listio_max
aio_max_ops


- - 2
50 - 50
16 - 16
0 - 0
2048 - 2048
0 - 0
4 - 4
2 - 2
256 - 256
2048 - 2048
カーネル・パラメータ
 
Installed software products
===========================
インストール済みソフトウェア
  B3394BA
B3691AA
B3699AA
B.11.11.02
C.03.71.00
C.03.71.00
  HP-UX Developer's Toolkit for 11.11
HP GlancePlus/UX for s700 11i
HP GlancePlus/UX Pak for s700 11
 
Mounted file systems
====================
マウントされたファイルシステム
  /dev/vg00/lvol3
/dev/vg00/lvol1
/
/stand
vxfs
hfs
log
defaults
  0 1
0 0
 
   
  このようにpfc.txtには、OSバージョン、ハードウェア構成、カーネル・パラメータ、インストール済みソフトウェアとパッチ、ファイルシステム構成などが記録される。よってHPのサポート担当者は、これら一連の基本情報をもとにトラブルシューティングに取りかかれる。従来のように、サポート担当者とシステム担当者の間で「OSのバージョンは何ですか?」「このパッチは適用済みですか?」といった繁雑なやりとりを行う必要をなくし、スピーディーな対応を可能とする仕掛けである。

MC plug-in

一方のMC plug-inは、HP JVM向けのプラグインであり、JVMの起動とともにメモリにロードされる。MC plug-inでは、JVMが起動するたびに「ケース」と呼ばれるユニークなIDを割り当て、様々な診断データを収集するための「ケース・ディレクトリ」を新規作成する。同ディレクトリにXML形式のログファイルjvm.xmlを作成し、予期せぬ例外の発生などの様々なイベントを記録する。またもしJVMが異常終了した場合は、"ケース・ディレクトリ"へコアファイルを保存する役目を担う。

MC plug-inが生成するjvm.xmlには、以下のような内容が記録される。
   
 
<?xml version="1.0" encoding="UTF-8"?>
<skit>
<load timestamp="1086824209">
ケースID
  < case>e0b3902e-ba6d-11d8-b9c0-00306e2b3bd2</case>  
    <plugin>/opt/skit/plugins/libskit.sl</plugin>
<static>
 
MC plug-inのファイル名
    <process>  
      < pid>15540</pid>
<uid>5928</uid>
<gid>20</gid>
<euid>5928</euid>
<egid>20</egid>
<text_size>1024</text_size>
<data_size>1024</data_size>
 
JVMプロセスの情報 (pid、uid、gid、メモリサイズなど)
      </process>
<global>
   
        < max_proc>500</max_pro>
<phys_mem>524288</phys_mem>
<page_size>4096</page_size>
<maxmem>470499</maxmem>
<lotsfree>8192</lotsfree>
<desfree>1024</desfree>
<minfree>256</minfree>
<max_ninode>1180</max_ninode>
<max_nfile>4010</max_nfile>
<stable_size>296</stable_size>
 
HP-UXのカーネル設定(最大プロセス数、最大inode数、 最大ファイル数など)
    </global>    
  </static>    
           
<name>Java HotSpot(TM) Server VM</name>    
  < vendor>Hewlett-Packard Company</vendor>
< release>1.4.2 1.4.2.04-040604-19:13-PA_RISC2.0 PA2.0 (aCC_AP)</release>
< vm_info>Built on Jun 4 2004 22:21:44 by jinteg with aCC</vm_info>
< argv count="6">
 
JVM情報(バージョン、 起動時引数、環境変数の値など)
    <arg index="0">/var/adm/crash/yt/opt/java1.4/bin/PA_RISC2.0/java</arg>
<arg index="1">-Xmx32m</arg>
<arg index="2">-XX:MaxPermSize=16m</arg>
<arg index="3">-XX:ReservedCodeCacheSize=8m</arg>
<arg index="4">-jar</arg>
<arg index="5">/opt/java1.4.2.0/demo/jfc/SwingSet2/SwingSet2.jar</arg>
   
  </argv>
<envp count="19">
   
    <env index="0">_=/opt/java1.4/bin/java</env>    
           
( 中略 )    
           
    </envp>    
  </load>
<newvm timestamp="1086824209">
   
    <vm>6ffabb10</vm>    
  </newvm>
<xcpt timestamp="1086824314">
   
    <signal>11</signal>
<vmthread>0004e7f8</vmthread>
<pthread>18</pthread>
<lwp>961284</lwp>
 
シグナル情報 (シグナル番号、対象のJVMスレッド/ユーザスレッド/カーネルスレッド)
     
( 中略 )    
     
<shlibs>    
  <shlib name="/var/adm/crash/yt/opt/java1.4/bin/PA_RISC2.0/java">    
    <fsize>85688</fsize>
<mtime>1086404116</mtime>
<tstart>00001000</tstart>
<tend>0000a30c</tend>
<dstart>0000b000</dstart>
<dend>0000ba08</dend>
 
ロードされたシェアードライブラリの情報
  </shlib>    
     
( 中略 )    
 
   
  このようにjvm.xmlには、ケースIDをはじめJVMプロセスに関する情報、HP-UXのカーネル設定、JVMのバージョンや起動時引数、受信したシグナルの番号や対象スレッド、そしてJVMがロードしたシェアード・ライブラリの一覧などが記録される。
トップへ   次のページへ

本ページの内容は執筆時の情報に基づいており、異なる場合があります。

お問い合わせ

ご購入前のお問い合わせ


ご購入後のお問い合わせ

オンラインサポート
製品の標準保証でご利用いただける無償のサービスです。

ショールーム

ショールーム 導入をご検討のお客様へ
業務アプリケーションの継続・標準化・開発性とシステム担当者様、システム開発者様が抱える悩み・疑問に対する解決策実体験して頂けます。
印刷用画面へ
プライバシー ご利用条件・免責事項