WebSphere Application Serverのチューニング 1
佐藤 龍之介 [著] 2007/08/30 14:00

1 2 3 →

はじめに

 J2EEサーバの健康診断をする上で、GC(ガーベッジ・コレクション)の発生状況の把握は非常に重要です。GCの発生状況を監視することによって、メモリリークを発見したり、サーバの負荷状況を調べたりすることができます。

 そこで、商用J2EEサーバとしてはシェアの高いWebSphere Application Serverを想定し、GCの解析方法とチューニングポイントを説明します。

対象読者

 WebSphere Application Serverを利用したシステム開発に携わる、開発者・アーキテクト。

必要な環境

  • サーバ:WebSphere Application Server 6.0以上
  • 解析用PC:IBM JDK 1.4.2以上がインストールされていること

 IBM JDK 5.0は、developerWorksのWebページからダウンロードできます。Eclipseとセットになっています。

WebSphereの設定

 GCを解析するためには、WebSphereに解析用ログ(native_stderr.log)を出力する設定を行います。

設定の手順

 WebSphereの管理コンソールを開き、左側のメニューから

  • [サーバー]→[アプリケーション・サーバー]→[(サーバー名)]→[構成]→
  • [サーバー・インフラストラクチャー]→[Javaおよびプロセス管理]→[プロセス定義]→[構成]→
    [追加プロパティー]→[Java仮想マシン]→[構成]→[一般プロパティー]→[冗長ガーベッジ・コレクション]をチェック
  • [OK]ボタンを押下、上部に表示されるメッセージ枠内の「直接マスター構成に保管できます。」の[保管]をクリック

 以上を行ったらサーバを再起動します。

 「native_stderr.log」は以下のディレクトリに出力されます。

  • native_stderr.logの出力ディレクトリ
  •  
    <WAS導入ディレクトリ>\profiles\<サーバディレクトリ>\bin
    
     
    (例) windowsの場合
    C:\Program Files\IBM\WebSphere\AppServer\profiles\AppSrv01\logs\server1
    
     
    「native_stderr.log」の中身はverbosegcログ(冗長ガーベッジ・コレクション)と呼ばれるものです。
ポイント
 native_stderr.logは常に出すようにしましょう。
native_stderr.logはシステムの健康診断書のようなものです。ログを出すこと自体は大きな負荷にはなりませんので、常に出力するようにしておくことをお勧めします。定期的に回収して健康診断を行いましょう。

verbosegcデータ

 GCの解析に必要なデータは、JVMがnative_stderr.logに出力します。verbosegcデータとは、GCが発生する度にJVMが出力するXML形式のデータです。データに含まれる主な情報は次のとおりです。

  • GC発生時刻
  • GC発生の原因となったメモリ確保要求サイズ
  • GCを実行した結果、確保されたメモリ量
  • GCにかかった時間
verbosegcの一例:(native_stderr.logの一部)
<?xml version="1.0" ?>
<verbosegc>
<af type="tenured" id="9016" timestamp="Fri Jul 13 00:10:54 2007" 
intervalms="953273.470">
<minimum requested_bytes="80" /> <time exclusiveaccessms="0.102" /> <tenured freebytes="1513888" totalbytes="805306368" percent="0" > <soa freebytes="0" totalbytes="803140608" percent="0" /> <loa freebytes="1513888" totalbytes="2165760" percent="69" /> </tenured> <gc type="global" id="9024" totalid="9024" intervalms="953273.995"> <refs_cleared soft="32" weak="454" phantom="1274" /> <finalization objectsqueued="1582" />

 verbosegcはXML形式なので、必ずヘッダ(<?xml>タグと<verbosegc>タグ)とフッタ(</verbosegc>タグ)が付いていなければなりません。しかし、ログのローテート(日付が変わったりファイルサイズが設定された限界に達した時、ログの出力先を別のファイルに切り替えること)が行われ、ヘッダ、フッタがないファイルができる場合があります。

 このようなファイルができてしまった場合は、そのままではツールが解析できません。不足したヘッダ、フッタを追加しておきましょう。

ヘッダ(太字部分)
<?xml version="1.0" ?>
<verbosegc>
<af type="tenured" id="65" timestamp="Sun Jun 17 00:24:35 2007" 
intervalms="4730690.326">
フッタ(太字部分)
</af>
</verbosegc>

1 2 3
→
INDEX
GCの解析とチューニングポイント
Page1
はじめに
対象読者
必要な環境
WebSphereの設定
verbosegcデータ
IBM Pattern Modeling and Analysis Tool for Java Garbage Collector(PMAT)
GCグラフの表示
グラフの選択
最後に
参考資料
プロフィール
佐藤 龍之介 サトウ リュウノスケ

某SIer にて、主にWeb系開発プロジェクトに従事。
 

趣味はラーメン食べ歩き。

http://sun594.spaces.live.com/


注目の求人情報
システムエンジニア/生活情報ポータルサイトのリーディングカンパニーである、JASDAQ上場企業よりSE募集!
社内SEとして、主に業務系システム及びインターネット広告関連システムの設計・開発・運用を行う仕事で...
システムエンジニア/社名非公開
流通システムの開発を担当するシステムエンジニア
プロジェクトマネージャー/国内大手SIer
会計系システムの導入コンサルティング。 具体的には、 ①グループ経営管理/予算管理/管理会計/財務会...

(最新日付順)
名前(ゲストの方もコメントをどうぞ):*
アイコン:
なし

内容(テキストのみ1200文字まで):*

投稿規定に同意して

スポンサーサイト

この記事のトラックバックURL: