使用しているJava のバージョンにより以下のような方法があります。
・Java1.5 を利用している場合
WebOTX 付属のプロファイラツールで実現可能です。利用方法については、マニュアルの以下の箇所を参照してください。
【V7.1~V8.2】
マニュアル - [運用編] - [プロファイラツール]
【V8.3、V8.4】
マニュアル - [アプリケーションサーバ] - [運用ツールガイド] - [2. プロファイラツール]
・Java6 を利用している場合
WebOTX 付属のプロファイラツールは、Java6 では動作しません。Java のオプションを利用してヒープメモリの情報を取得することが可能です。以下の手順で、ヒープダンプを採取できます。
1. ドメインを起動してください。
2. 運用管理コマンド(otxadmin)でエージェントプロセスにヒープメモリの情報を採取するための設定を追加してください。コマンドの実行にはログインが必要です。
otxadmin> create-jvm-options "-agentlib\:hprof=heap=all"
※「:」を入力する際には「\」(エスケープ)を付加する必要があります。
設定された値を確認するには、以下のコマンドを実行してください。
otxadmin>get server.java-config.jvm-options
3. ドメインを再起動してください。
4. アプリケーションを実行してください。
5. ドメインを停止してください。
6. 以下の箇所にヒープメモリの情報が出力されます。
{WebOTXインストールディレクトリ}/domains/{ドメイン名}/config/java.hprof.txt
ただし、以下の点についてご注意ください。
・出力ファイルはドメインを起動するたびに上書きされます。
・ヒープ情報は、ドメインの停止時にのみ出力されます。任意のタイミングでは出力できません。
・作成されるファイルは、サイズが大きいものとなります。実行時は、ディスク容量にご注意ください。
・ヒープダンプでは、メソッドごとのヒープメモリサイズではなく、オブジェクトごとのヒープメモリサイズが出力されます。大きなサイズを占めるオブジェクトについて、妥当なサイズであるかをご確認頂き、メモリリークが起きているかを確認してください。また、メモリリークが起きていそうである場合は、問題となったオブジェクトを作成しているメソッドの処理を確認してください。
また、「-XX:HeapDump」というJVMオプションを設定することで、「kill -3 <ドメインのプロセスID>」を実行したタイミングで、ヒープダンプを出力することができます。
設定方法は、上記で記載した手順の1~3と同じであり、出力先は、{WebOTXインストールディレクトリ}/domains/{ドメイン名}/config ディレクトリ配下です。ただし、出力されたファイル内容は HPjmeter という HP-UX が提供しているツールで解析する必要があります。HPjmeterの詳細につきましては、以下のページなどを参考にしてください。
http://h50146.www5.hp.com/products/software/oe/hpux/component/programming/java_dev/jmeter/【対象製品】Application Server
【確認済みのバージョン】V7 V8
【確認済みのエディション】すべて
【確認済みの対象OS】すべて
【確認済みのJavaバージョン】すべて
【コンポーネント】運用管理
【カテゴリー】開発/設計(性能チューニング)