...

I B M

by user

on
Category: Documents
35

views

Report

Comments

Description

Transcript

I B M
IBM Rational Software Architect/
Rational Application Developer
パフォーマンスに関する問題判別ガイド
2010 年 10 月 ISE | Rational Solution Group
© Copyright 2010 IBM Corporation
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド

この資料に含まれる情報は可能な限り正確を期しておりますが、日本アイ・ビー・エム株式
会社ならびに日本アイ・ビー・エム システムズ・エンジニアリング株式会社の正式な
レビューを受けておりません。当資料は、資料内で説明されている製品の仕様を保証する
ものではありません。

資料の内容には正確を期するよう注意しておりますが、この資料の内容は 2010 年 10 月
現在の情報であり、製品の新しいリリース、PTF などによって動作、仕様が変わる可能性
があるのでご注意下さい。当資料に記載された製品名または会社名はそれぞれの各社の
商標または登録商標です。

資料のすべてあるいは1部を問わず、日本アイ・ビー・エム システムズ・エンジニアリング
株式会社の許可なく使用、改変することを禁じます。
© 2010 IBM Corporation
-1-
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
目次
1
2
3
はじめに .............................................................................................................................. - 3 1.1
概要 .............................................................................................................................. - 3 -
1.2
前提 .............................................................................................................................. - 3 -
問題判別手順 ...................................................................................................................... - 4 2.1
応答の有無 .................................................................................................................... - 4 -
2.2
CPU 使用率の確認........................................................................................................ - 4 -
2.3
クリーン起動による再現の確認 ........................................................................................ - 8 -
パフォーマンス・ダウンの問題判別手順............................................................................... - 10 3.1
SWAP によるパフォーマンス・ダウン ............................................................................. - 10 -
3.1.1
メモリ使用量の確認................................................................................................ - 11 -
3.1.2
SWAP の対処 ....................................................................................................... - 13 -
3.2
Full GC 頻発によるパフォーマンス・ダウン .................................................................... - 23 -
3.2.1
ヒープ使用量の確認 .............................................................................................. - 23 -
3.2.2
Full GC 頻発の対処 .............................................................................................. - 25 -
3.3
実行中の処理計算量が大きいことによるパフォーマンス・ダウン ...................................... - 34 -
3.3.1
CPU 使用率の確認 ............................................................................................... - 34 -
3.3.2
処理計算量が大きいことへの対処 .......................................................................... - 34 -
付録 サポートへの問い合わせ .................................................................................................. - 36 A. 診断情報の取得 ........................................................................................................... - 36 ユーザー・インターフェース・モニターの利用 ....................................................................... - 36 Javacore の取得 ............................................................................................................... - 39 B. サポートへの問い合わせ ............................................................................................... - 42 -
© 2010 IBM Corporation
-2-
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
1
はじめに
1.1
概要
本資料は、IBM Rational Software Delivery Platform 製品の利用者を対象に、利用中に生じたパフォ
ーマンスに関する問題に対して、問題判別手順および対処方法を示します。その他のパフォーマンス
に関する Hint & Tips については、別紙「IBM Rational Software Architect/Rational Application
Developer パフォーマンスに関する Hint & Tips」を参照してください。
前提
1.2
本資料が対象としている製品は、主に IBM Rational Software Architect、および、IBM Rational
Application Developer(以下、RSA/RAD)になります。以下に対象とするエディション、バージョンを示し
ます。
・
IBM Rational Software Architect V8.0(.1)
・
IBM Rational Software Architect for WebSphere Software V8.0(.1)
・
IBM Rational Software Architect for WebSphere Software V7.5.5.2
・
IBM Rational Software Architect Standard Edition V7.5.5.2
・
IBM Rational Application Developer for WebSphere Software V8.0(.1)
・
IBM Rational Application Developer for WebSphere Software V7.5.5.2
上記以外の製品であっても、Eclipse ベースの製品であれば、本資料の問題判別手順は有効です。た
だし、対処方法に関しては、製品やそのバージョンによって一部利用できないものがあります。
また、対象としている OS は Windows XP です。
© 2010 IBM Corporation
-3-
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
2
問題判別手順
本章では、RSA/RAD の利用中に生じた応答に関する問題について、パフォーマンスに関する問題か
否かを切り分ける問題判別手順を示します。下図にてその手順を示します。
2.1
応答の有無
まず、RSA/RAD からの応答の有無を確認します。応答はあるけれども著しく遅い場合にはパフォーマ
ンス・ダウンの問題とします。この場合、3 章「パフォーマンス・ダウンの問題判別手順」を参照してくださ
い。
2.2
CPU 使用率の確認
応答が一定期間無い場合には、CPU 使用率を確認します。RSA/RAD の CPU 使用率が極端に低い
(ほぼ 0%に近い)場合、RSA/RAD 上の複数のスレッド間でデッドロックが起きている可能性があります。
たとえば、あるバージョンの RAD において、XML 開発プラグインが初期化されていない状態で、Ant ビ
ルド・スクリプトを開こうとすると、Ant プラグインと XML 開発プラグインがお互いのスレッドを待ち、デッド
ロックが発生するということがありました。このような場合、CPU は待機状態のため使用率は低いですが
RSA/RAD から応答が返ってきません。
以下に、CPU 使用率の確認方法を示します。
© 2010 IBM Corporation
-4-
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
1. CPU 使用率を確認します。
a. Windows のタスク・バーを右クリックし、「タスク マネージャ」をクリックします。
b. 「Windows タスク マネージャ」が開きます。「プロセス」タブをクリックし、CPU 使用率を
確認します。
javaw.exe が RSA/RAD のプロセスとなります。下図では、0%と非常に低い CPU 使用率
であることがわかります。
© 2010 IBM Corporation
-5-
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
RSA/RAD から応答が無く、かつ、javaw.exe の CPU 使用率がしばらく 0%に近い場合は、
デッドロックが生じている可能性があります。CPU 使用率の経過を確認するには、「CPU 使用
率の履歴」を確認します。
2. CPU 使用率の履歴を確認します。
a. 「パフォーマンス」タブをクリックし、右上セクションの「CPU 使用率の履歴」を確認します。
赤と緑の線で、CPU 使用率が時系列に表示されます。緑の線が RSA/RAD を含むユー
ザー・アプリケーションの CPU 使用率になります。赤い線はカーネルの CPU 使用率にな
ります。
CPU 使用率の履歴は、CPU のコア数分表示されます。下図の場合、2 コアとも CPU が
ほとんど使用されていないことがわかります。CPU 使用率が一定期間低い場合、「2.3 クリ
ーン起動による再現の確認」に移ります。
© 2010 IBM Corporation
-6-
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
下図のような場合、2 コアとも高い CPU 使用率が続いています。この場合、RSA/RAD、
あるいは、他のアプリケーションの処理負荷が大きいことが原因で、CPU 使用率が高まっ
ている可能性があります(CPU 使用率の高いアプリケーションを特定するには、手順 1 の
「プロセス」タブから確認します)。なお、1 コアだけ CPU 使用率が高くても RSA/RAD の
パフォーマンスに影響します。RSA/RAD のプロセスが CPU を高い使用率で使用してい
る場合、3 章「パフォーマンス・ダウンの問題判別手順」、とりわけ、3.3 節「実行中の処理
計算量が大きいことによるパフォーマンス・ダウン」に移ります。
他のプロセスが高い使用率で CPU を消費している場合、そのプロセスについて問題判
別、対応を行ってください。
© 2010 IBM Corporation
-7-
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
2.3
クリーン起動による再現の確認
RSA/RAD から一定期間応答が無く、また、CPU 使用率が極めて低い場合、クリーン起動を実施して問
題が再現するかを確認します。クリーン起動することにより、RSA/RAD がキャッシュしているプラグイン
やメタデータが消去された上で起動します。
1. CPU 使用率が極めて低い RSA/RAD のプロセスを終了します。
a. 「Windows タスク マネージャ」の「プロセス」タブをクリックします。
b. RSA/RAD の javaw.exe プロセスを右クリックし、「プロセスの終了」をクリックします。
© 2010 IBM Corporation
-8-
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
2. RSA/RAD をクリーン起動します。
クリーン起動するには、eclipse の起動オプションに「-clean」を加え、実行します。
例) RSA for WebSphere Software V7.5 の場合
C:¥IBM¥SDP¥eclipse.exe -product com.ibm.rational.rsa4ws.product.v75.ide –clean
例) RAD for WebSphere Software V8.0 の場合
C:¥IBM¥SDP80¥eclipse.exe -product com.ibm.rational.rad.product.v80.ide -clean
3. 問題を再現させます。
問題が生じた操作手順を再度実施して、問題が再現するかを確認します。
4. 問題が再現した場合には、新しいワークスペースを作成して、プロジェクトを取り込み直し、問題の
再現を試みます。問題が再現しない場合、キャッシュ・データによる一時的な問題となり、問題判別
手順を終了します。
問題が再現する場合、デッドロックが生じている可能性が高いため、製品サポートへの問い合わせ
を行います。巻末付録「サポートへの問い合わせ」へ移ります。
なお、他の端末で RSA/RAD が存在する場合、他の端末においても問題が再現するかどうかを調
べておくことも重要です。他の端末では問題が再現されない場合、すなわち、端末固有の問題の
場合、ファイル・システム、あるいは、アンチウィルス・ソフトウェアなどのシステム・ソフトウェアが影響
していることもあります。端末固有の問題である旨も製品サポート問い合わせの際に伝えます。
© 2010 IBM Corporation
-9-
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
3
パフォーマンス・ダウンの問題判別手順
本章では、RSA/RAD の応答が遅くなるパフォーマンス・ダウンが発生した場合の問題判別手順、およ
び、対処方法を示します。
パフォーマンス・ダウンにおける問題判別手順を以下に示します。
パフォーマンス・ダウンにおいて考えられる原因を大きく分けると、以下になります。

SWAP

Full GC の頻発

実行中の処理の計算量が膨大
上記のいずれにも当てはまらない場合、IBM 製品サポートに問い合わせを行います。サポートへの問い
合わせについては巻末付録「サポートへの問い合わせ」を参照してください。
次節からは、上記原因を特定するための手順と対処方法を示します。
3.1
SWAP によるパフォーマンス・ダウン
動作中のアプリケーションが必要とするメモリ量(コミット・チャージといいます)が物理メモリ内で処理でき
なくなると、OS は現在使用されていないアプリケーションのメモリ内容を補助記憶装置に書き出し、占有
していた物理メモリを解放します。メモリから補助記憶装置に退避する動作を「スワップアウト」
(SWAP-OUT)、補助記憶装置からメモリに書き戻す動作を「スワップイン」(SWAP-IN)といいます。ここ
では、SWAP-IN、SWAP-OUT を総称して SWAP と呼びます。SWAP は RSA/RAD のパフォーマンス
を悪化させます。したがって、SWAP が発生しないように、常にコミット・チャージが物理メモリ内で収まる
ようにしておくことが求められます。
© 2010 IBM Corporation
- 10 -
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
3.1.1
メモリ使用量の確認
以下では、メモリ使用量から SWAP が発生しているかどうかを確認する手順を示します。
1. コミット・チャージを確認します。
a. Windows のタスク・バーを右クリックし、「タスク マネージャ」をクリックします。
b. 「Windows タスク マネージャ」が開きます。「パフォーマンス」タブをクリックします。
© 2010 IBM Corporation
- 11 -
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
c.
「コミット・チャージ」の合計を確認します。
下図では、3,163,276KB であることがわかります。
2. 物理メモリの合計を確認します。
「Windows タスク マネージャ」の「パフォーマンス」タブから確認します。
手順 1.-c の図では、3,104,700KB であることがわかります。
3. コミット・チャージの合計と物理メモリの合計を比較します。

コミット・チャージの合計 < 物理メモリの合計
動作中のアプリケーションは物理メモリ内で処理されます。

コミット・チャージの合計 > 物理メモリの場合
動作中のアプリケーションは、物理メモリ内だけでは処理することができず、
SWAP が発生します。
手順 1.-c の図では、「コミット・チャージの合計 > 物理メモリの合計」であることがわかりま
す。
© 2010 IBM Corporation
- 12 -
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
3.1.2
SWAP の対処
SWAP が発生している場合、「コミット・チャージの合計 < 物理メモリの合計」とすることで、RSA/RAD
のパフォーマンスが改善されます。ここでは、以下の優先順位で、SWAP が発生しないように対処しま
す。
3.1.2.1 不要なメモリの解放
SWAP が発生しないように、「コミット・チャージの合計 < 物理メモリの合計」となるように不要なアプリ
ケーションを閉じ、終了させます。
以下では、どの程度不要なメモリを解放すべきかの目安について説明します。
RSA/RAD は、デフォルトの設定では、ビルドやある機能を必要とした時点での遅延ロード等により、
徐々にコミット・チャージ量が増えていきます。RSA/RAD が使用するヒープ・メモリの使用量をあらかじ
め固定することにより、RSA/RAD のコミット・チャージ量の上限がほぼ定まります。定まった上で、「コミッ
ト・チャージの合計 < 物理メモリの合計」とすることにより、RSA/RAD の使用による SWAP を未然に
防ぐことができます。以下では、RSA/RAD が使用するヒープ・メモリをあらかじめ固定する手順を示しま
す。
1. RSA/RAD のインストール・ディレクトリーを開きます。
デフォルトでは、C:¥Program Files¥IBM¥SDP になります。
© 2010 IBM Corporation
- 13 -
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
2. RSA/RAD のインストール・ディレクトリー配下にある eclipse.ini ファイルをエディターで開きます。
※ eclipse.ini ファイルを変更する前に、バックアップを取得することを推奨します。
3. RSA/RAD 起動時のパラメーターである「-Xms」および「-Xmx」を見つけます。
-Xms は初期ヒープ・サイズを、-Xmx は最大ヒープ・サイズを指定します。
下図では、初期ヒープ・サイズが 100MB, 最大ヒープ・サイズが 1024MB です。
© 2010 IBM Corporation
- 14 -
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
4. 「初期ヒープ・サイズ=最大ヒープ・サイズ」となるように。-Xms および-Xmx の値を修正します。
下図では、-Xms の値を-Xmx の値と等しくなるように、「1024m」としました。
* eclipse.ini ファイルを修正し、その内容を反映させるには、RSA/RAD を(再)始動します。
RSA/RAD が始動済みの場合、メニュー・バーから、「ファイル」→「再始動」をクリックします。
© 2010 IBM Corporation
- 15 -
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
以上で、RSA/RAD が使用するコミット・チャージ量の上限がほぼ定まりました。他のアプリケーションが
SWAP をおこさずに使用できるメモリ量は「物理メモリの合計 - コミット・チャージの合計」となります。
この目安を参考に、他のアプリケーションが使用している不要なメモリを解放します。なお、Windows タ
スク・バー上で確認できるアプリケーション以外にも多くのプロセスが動作しています。「3.1.1 メモリ使用
量の確認」で示したタスク・マネージャーの「プロセス」タブや Windows サービスを確認し、不要なプロセ
スが動作していないかを確認してみてください。
たとえば、WebSphere Application Server(以下、WAS)のプロファイルを作成したとき、デフォルトの設
定では Windows サービスが作成されるので、OS 起動時にプロファイルが起動されていることがありま
す。使用していないのであればメモリを解放すべきです。以下では、WAS テストサーバーが Windows
サービスとして登録されてしまっているかどうかを確認する手順を示します。
1. Windows のスタート・メニューから、「コントロール パネル」をクリックします。
© 2010 IBM Corporation
- 16 -
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
2. コントロール パネルが開きます。「管理ツール」をダブル・クリックします。
3. 管理ツールが開きます。「サービス」をダブル・クリックします。
© 2010 IBM Corporation
- 17 -
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
4. サービスが開きます。下図の例では、IBM WebSphere Application Server V7.0 のあるプロファイ
ルが自動起動されています。不要である場合「サービスの停止」をクリックします。
5. また、OS 起動時に WAS プロファイルを自動起動する必要がない場合、サービスを右クリックし、
「プロパティ」をクリックします。
6. IBM WebSphere Application Server のプロパティが開きます。「スタートアップの種類」を「手動」
にし、「適用」後、「OK」をクリックします。
© 2010 IBM Corporation
- 18 -
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
3.1.2.2 RSA/RAD 以外の Java アプリケーションのメモリ使用量の制限
3.1.2.1 の手順の中で説明した最大ヒープ・サイズを指定することにより、RSA/RAD 以外の Java アプリ
ケーションの使用するメモリを制限します。一般的な Java アプリケーションであれば、Java 起動時のコ
マンド・オプションとして「(java) –XmxValue」を指定します (Value は 128K や 256M など)。
RSA/RAD に同梱される WAS テスト環境では、以下の手順でメモリ使用量を制限します。
1. RSA/RAD のサーバー・ビューから WAS を起動します。起動する WAS を選択し、「サーバー
を始動」アイコンをクリックします。
2. WAS が「始動済み」になったら、管理コンソールを起動します。サーバー・ビューから、始動済
み WAS を右クリックし、「管理」→「管理コンソールの実行」をクリックします。
3. 管理コンソールが起動します。以降の説明は WAS V7.0 テスト環境における設定方法です。
WAS V6.1 など他のバージョンの WAS テスト環境を使用している場合には WebSphere
Application Server のドキュメンテーションを参照して設定を行ってください。
© 2010 IBM Corporation
- 19 -
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
4. サーバー・セクションから「WebSphere Application Server」リンクをクリックします。
5. アプリケーション・サーバーのリストから、ヒープ・サイズを変更するサーバーのリンクをクリックし
ます。
6. アプリケーション・サーバーの構成ページが開きます。サーバー・インフラストラクチャー・セク
ションから、「Java およびプロセス管理」→「プロセス定義」リンクをクリックします。
© 2010 IBM Corporation
- 20 -
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
7. プロセス定義の構成ページが開きます。追加プロパティー・セクションから、「Java 仮想マシ
ン」リンクをクリックします。
8. Java 仮想マシンの構成ページが開きます。一般プロパティー・セクションから、初期ヒープ・サ
イズや最大ヒープ・サイズを設定し、「適用」をクリックします。
下図では、初期ヒープ・サイズを 256MB、最大ヒープ・サイズを 768MB としています。
© 2010 IBM Corporation
- 21 -
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
9. メッセージ欄から、「保存」リンクをクリックし、マスター構成を保管します。
10. WAS の再始動を行います。手順 1 同様、RSA/RAD のサーバー・ビューから再始動する WAS
を選択し、「サーバーを再始動」アイコンをクリックします。
3.1.2.3 RSA/RAD のメモリ使用量の制限
3.1.2.1 の手順の中で説明した最大ヒープ・サイズを指定することにより、RSA/RAD の使用するメモリを
制限します。ただし、制限しすぎると OutOfMemory の発生、または、Full GC が頻繁に発生し、さらに
RSA/RAD のパフォーマンスを悪化させてしまいます。そのため、最大ヒープ・サイズを 512MB 以下に
することは避けるべきです。次のセクションである 3.2.1 項「ヒープ使用量の確認」の手順に従って
RAD/RSA が使用しているヒープ・サイズを確認したうえで設定を行います。
手順は、3.1.2.1 と同じで、-Xmx の値のみ値を変更します。また、-Xms の値は -Xmx の値以下に設
定します。
© 2010 IBM Corporation
- 22 -
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
3.2
Full GC 頻発によるパフォーマンス・ダウン
RSA/RAD や WAS などの JVM 上で稼動する Java アプリケーションは、JVM によって使用するオブジ
ェクトのライフサイクルが管理されます。オブジェクトはヒープ領域というメモリ上で管理されます。ヒープ
領域がオブジェクトで多く占有されると、コストのかかる Full GC(Garbage Collection)が頻発するように
なります。また、GC により不要なオブジェクトをメモリから除去した後も、必要なサイズだけ連続した空き
領域が確保できなかった場合には Compaction というコストのかかるメモリ整理処理が行われます。これ
らは比較的時間のかかる処理として知られ、パフォーマンスに影響します。
3.2.1
ヒープ使用量の確認
以下では、RSA/RAD 上からヒープ使用量を確認する手順を示します。
1. RSA/RAD のメニュー・バーから、「ウィンドウ」→「設定」をクリックします。
2. 設定ダイアログが開きます。「一般」を選択します。
© 2010 IBM Corporation
- 23 -
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
3. 「ヒープ・ステータスを表示」にチェックを入れ、「適用」をクリックします。
4. 「OK」をクリックして、設定ダイアログを閉じます。
5. RSA/RAD の下部に、ヒープ・ステータスが表示されていることを確認します。
ヒープ・ステータスにより、最大ヒープ・サイズに対するヒープ使用量をリアルタイムに確認することが
できます。
下図では、最大ヒープ・サイズが 1024MB であるのに対し、760MB ヒープを使用していることがわか
ります。
RSA/RAD がなんらかの処理をしている間に、ヒープ使用率が常に 90%を超えた値になってしまっ
ている場合には、Full GC の処理そのものによってパフォーマンスが悪化している可能性がありま
す。
なお、GC を詳細に調査したい場合は、以下を参考にしてください。
【参考】Java の診断を IBM スタイルで、第 2 回: Extensible Verbose Toolkit を使用したガーベッ
ジ・コレクション
http://www.ibm.com/developerworks/jp/java/library/j-ibmtools2/
© 2010 IBM Corporation
- 24 -
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
3.2.2
Full GC 頻発の対処
ヒープ使用量が高い場合、使用されていないヒープ領域を増やすことにより、Full GC の頻発を抑えるこ
とができます。ここでは、以下の優先順位で、Full GC の発生頻度を抑えられるように対処します。
3.2.2.1 最大ヒープ・サイズを増強(物理メモリに余裕がある場合)
物理メモリに余裕がある場合、最大ヒープ・サイズを増強します。最大ヒープ・サイズをより大きく取ること
で、Full GC 発生回数を抑えるだけでなく、Compaction 処理の発生を抑えることができます。
手順は、3.1.2.1 と同じで、-Xmx の値のみ値を変更します。
© 2010 IBM Corporation
- 25 -
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
3.2.2.2 ヒープの解放(RSA/RAD V7.5.5.2 以上の場合)
ヒープの解放を行うことで、使用可能なヒープ領域を増やします。RSA/RAD V7.5.5.2 以上の場合、ワ
ークベンチ上からヒープの解放を行うことができます。以下に手順を示します。
1. RSA/RAD のメニュー・バーから、「ヘルプ」→「パフォーマンス」→「今すぐメモリを削減」をクリックし
ます。
2. メモリの削減ダイアログが開きます。ヒープが解放されたことを確認します。
下図では、4,134KB の Java ヒープ・スペース、および、594,568KB のワーキング・セット(物理メモリ
領域)が解放されたことがわかります。
© 2010 IBM Corporation
- 26 -
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
なお、RSA/RAD V7.5.5.2 以上では、使用可能メモリが指定したレベルを下回った場合、開発環境を自
動的にモニターし、調整することができます。メモリー・モニターが使用可能な場合、モニターはバックグ
ラウンドで実行されます。以下にその設定手順を示します。
1. RSA/RAD のメニュー・バーから、「ウィンドウ」→「設定」をクリックします。
2. 設定ダイアログが開きます。「一般」→「パフォーマンス・モニター」→「メモリー・モニター」をクリックし
ます。
a. 「メモリのモニターを使用可能にする」にチェックを入れます。
© 2010 IBM Corporation
- 27 -
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
b. ポーリング間隔を秒数で指定します。ポーリング間隔は、リソース・モニターがリソース値
を確認する頻度を指定します。
c.
RAM 使用量をパーセントで指定します。RAM 使用量パーセントは、メモリ解放タスクが
発生する最大 RAM 使用量を指定します。
© 2010 IBM Corporation
- 28 -
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
d. メモリ量をすぐに削減するには、「今すぐメモリを削減」をクリックします。
e. 「拡張」をクリックし、RAM 使用量に対する詳細なメモリ解放戦略を設定し、「OK」をクリッ
クします。
© 2010 IBM Corporation
- 29 -
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
前述の RAM 使用量同様に、メモリ解放タスクが発生する最大 RAM 使用量を指定しま
す。
「ルーチン」、「重大」、「緊急」と下に行くにつれてメモリを解放したときのパフォーマンス
のインパクトが大きくなります。一方で、CPU 処理時間が増える可能性があります。これは、
メモリの解放により消去されたキャッシュ・データやファイルに書き出されたメモリの内容を、
必要になった時点で再計算を行う必要があるからです。
ヒープ・ステータスや RSA/RAD の応答を確認しながら、「ルーチン」から試し始め、それ
でも改善が見られなかったら「重大」と、順に実施していきます。
3. 設定ダイアログに戻ります。「適用」をクリックします。
4. 「OK」をクリックします。
© 2010 IBM Corporation
- 30 -
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
3.2.2.3 使用していないプロジェクト/モデルを閉じる
使用していないプロジェクトやモデルを閉じることで、プロジェクト、モデルに割り当てられていたヒープ
が解放されます。ワークスペース上に多くのプロジェクトやモデルが存在する場合に有効です。
プロジェクトを閉じるには、当該プロジェクトを右クリックし、「プロジェクトを閉じる」をクリックします。
モデルを閉じるには、当該モデルを右クリックし、「閉じる」をクリックします。
プロジェクトやモデルを使用する場合は、プロジェクト、モデルをそれぞれ開きます。
プロジェクトを開くには、当該プロジェクトを右クリックし、「プロジェクトを開く」をクリックします。
© 2010 IBM Corporation
- 31 -
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
モデルを開くには、当該モデルを右クリックし、「モデルを開く」をクリックします。
© 2010 IBM Corporation
- 32 -
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
3.2.2.4 RSA/RAD の再始動
RSA/RAD の再始動を行うことで、不要に確保されているヒープ領域を解放します。不要に確保されて
いるヒープ領域とは、たとえば、普段利用しない XML エディターを XML ファイル編集のためにロードし
た場合、再始動されるまで XML エディター・プラグインのヒープ領域は確保されたままとなります。
再始動を行うには、メニュー・バーから、「ファイル」→「再始動」をクリックします。
© 2010 IBM Corporation
- 33 -
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
3.3
実行中の処理計算量が大きいことによるパフォーマンス・ダウン
RSA/RAD に限らずすべてのアプリケーションはなんらかの処理を実行すると CPU を占有します。ある
単位時間内で、実行中のアプリケーションが CPU を占有している時間の割合を CPU 使用率といいま
す。RSA/RAD の CPU 使用率が一定期間高い場合、RSA/RAD は計算量の膨大な処理を実施してい
ることがあります。
単純な操作に対して、背後では膨大な処理が行われていることがあり、その場合に、その操作のパフォ
ーマンスが出ないように見えることがあります。その一例としては CVS 等の構成管理ソフトウェアから多く
のプロジェクトを一度にチェックアウトするような場合があります。チェックアウト後、すべてのプロジェクト
に対してビルドが行われます。チェックアウトされたすべてのプロジェクトに含まれるソースコードはコン
パイルのためにすべて解析されます。各ソースコードの依存関係を解決するために、ライブラリーや依
存関係にあるプロジェクトがさらに解析され、必要なクラスが再帰的に検索されます。そしてコンパイルが
行われた後は、HTML バリデーターやアノテーション・バリデーターなどの検証が行われます。それぞれ
の検証に対して検証のルールが読み込まれ、ルールに沿って検証が実施されます。検証後は検証結
果のインデックスを作る処理が行われます。このように、1 つの操作により膨大な処理計算量が発生する
ことがあります。
3.3.1
CPU 使用率の確認
計算量の大きな処理をしている場合、CPU 使用率が一定期間高くなります。CPU 使用率、および、そ
の履歴を確認するには、2.2 節「CPU 使用率の確認」を参照してください。
3.3.2
処理計算量が大きいことへの対処
処理計算量が膨大になる場合、計算処理対象を減らすことで計算量を減らします。
上記チェックアウトの例では、チェックアウトするプロジェクトを分割して複数回に分け、チェックアウト後
すぐには必要のないビルドや検証を分割して実施することによって、再帰処理や繰り返し処理を抑え、
計算量を減らします。また、「3.2.2.3 使用していないプロジェクト/モデルを閉じる」で示したプロジェクト/
モデルを閉じておくことにより、ワークスペース全体のビルドや検索の計算処理対象とならないので計算
量を減らせます。
別紙「Rational Software Architect/Rational Application Developer パフォーマンスに関する Hint &
Tips」では、直接の処理量を減らしたり、あるいはバックグラウンドで動作する処理の量を減らすなどの
形で、計算負荷を下げるための Tips を多数紹介しています。たとえば「プロジェクトのバイナリー化」Tip
© 2010 IBM Corporation
- 34 -
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
では、一部のプロジェクトをソースからコンパイル済みのバイナリーに置き換えることで、分析処理やコン
パイル処理などの計算量を減らしパフォーマンスの向上へつなげます。
対象のプロジェクトを減らし、また上記のパフォーマンス Tips を適用したうえでも、ある特定の操作に極
めて時間がかかる場合、製品の障害の可能性があります(例えば内部的に無限ループになってしまっ
ているなど)。この場合には、2.3 節「クリーン起動による再現の確認」の手順に従ってクリーンなワークス
ペースでの問題の再現を試み、解決できない場合には巻末付録「サポートへの問い合わせ」に従って、
製品サポートへと問い合わせます。
© 2010 IBM Corporation
- 35 -
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
付録 サポートへの問い合わせ
RSA/RAD をクリーン起動しても問題が再現する、あるいは、他の端末においても再現する場合、障害
の可能性が高く、Passport Advantage(Rational Customer Support)に問い合わせます。
問い合わせる際は、以下に示すような問題を分析するための情報が必要になります。
・
OS 名とそのエディション、バージョン
・
RSA/RAD のエディション、バージョン
・
問題の再現手順
・
[ワークスペースへのパス]¥.metadata¥.log ファイルと発生時刻
・
ワークスペース内の問題が生じたプロジェクト
・
問題発生時のスクリーンショット
・
診断情報(Javacore)
付録 A.では、診断情報の取得について示します。Passport Advantage への問い合わせについては付
録 B.を参照してください。
A. 診断情報の取得
ユーザー・インターフェース・モニターの利用
RSA/RAD V7.5.5.2 以降の場合、「ユーザー・インターフェース・モニター」により、ワークベンチ・ユーザ
ー・インターフェースに一定期間応答が無い場合、診断情報を自動で生成できます。以下に、その設定
手順を示します。
1. RSA/RAD のメニュー・バーから、「ウィンドウ」→「設定」をクリックします。
© 2010 IBM Corporation
- 36 -
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
2. 設定ダイアログが開きます。「一般」→「パフォーマンス・モニター」→「ユーザー・インターフェース・
モニター」を選択します。
3. ユーザー・インターフェース・モニターの設定を行います。
a. 「UI のモニターを使用可能にする」にチェックを入れます。
b. 「応答のしきい値」に応答が無くなってから何秒で診断情報を生成するかを指定します。
上図では、180 秒としています。
c.
「適用」をクリックします。
d. 「OK」をクリックします。
「ユーザー・インターフェース・モニター」を設定しておくことにより、設定したしきい値を超
えて応答が無い場合には、「IBM へのファイルの送信」ダイアログが表示されます。
© 2010 IBM Corporation
- 37 -
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
診断情報を確認する場合は、「詳細」をクリックし、ファイルへのリンクをクリックします。
診断情報には、ワークスペースのメタデータやプロジェクト、javacore ファイルなどが含ま
れます。
IBM へ診断情報を送信する場合は、「OK」をクリックします。
© 2010 IBM Corporation
- 38 -
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
Javacore の取得
ユーザー・インターフェース・モニターが利用できない場合、問題が生じている間に手動で Javacore を
取得します。取得方法は以下の 2 つのアプローチがあります。
アプローチ 1
eclipse.ini ファイルを編集し、コンソール・ウィンドウから取得
アプローチ 2
sendsignal ユーティリティー・プログラムから取得
アプローチ 1
1. eclipse.ini ファイルをバックアップします。
eclipse.ini ファイルは RSA/RAD のインストール・ディレクトリーにあります。
(通常では、C:¥Program Files¥IBM¥SDP)
2. eclipse.ini ファイルを開き、「javaw.exe」を「java.exe」に変更します(“w”を除きます)。
3. RSA/RAD を始動します。eclipse.exe を実行します。
eclipse.exe ファイルは RSA/RAD のインストール・ディレクトリーにあります。
(通常では、C:¥Program Files¥IBM¥SDP)
4. コンソール・ウィンドウが開きます。
© 2010 IBM Corporation
- 39 -
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
5. コンソール・ウィンドウ上で、Ctrl+Pause をクリックします。
6. Javacore が生成されたことを確認します。
Javacore は RSA/RAD のインストール・ディレクトリーに javacore{timestamp}.txt という名前で生成
されます。
7. 1 分の間隔で 2 つ以上取得します。
2 つ以上の Javacore を取得する理由は、停止してしまっているスレッドと、そうでないスレッドを識
別するためになります。
アプローチ 2
1. sendsignal ユーティリティー・プログラム(SendSignal.exe)を以下からダウンロードします。
http://www.latenighthacking.com/projects/2003/sendSignal/
2. RSA/RAD のプロセス ID を調べます。
a. Windows のタスク・バーを右クリックし、「タスク マネージャ」をクリックします。
© 2010 IBM Corporation
- 40 -
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
b. 「Windows タスク マネージャ」が開きます。メニュー・バーから、「表示」→「列の選択」を
クリックします。
c.
「列の選択」ダイアログが開きます。「PID(プロセス ID)」にチェックを入れ、「OK」をクリック
します。
© 2010 IBM Corporation
- 41 -
IBM Rational Software Architect/ Rational Application Developer
パフォーマンスに関する問題判別ガイド
d. 「プロセス」タブを開き、RSA/RAD のプロセス「javaw.exe」のプロセス ID を調べます。
下図の場合、「5836」であることがわかります。
3. コマンド・プロンプトを開き、1.でダウンロードした SendSignal.exe を実行します。
実行時のパラメーターとして、2.で調べたプロセス ID を指定します。
例)SendSignal.exe 5836
「Sending signal to process (PID)」と表示されます。Javacore ファイルが生成されたら、入力待ち
の状態になります。
4. Javacore が生成されたことを確認します。
Javacore は RSA/RAD のインストール・ディレクトリーに javacore{timestamp}.txt という名前で生成
されます。
5. 1 分の間隔で 2 つ以上取得します。
B. サポートへの問い合わせ
問い合わせに必要な情報が準備できたら、以下のサイトから IBM 製品サポートへ問い合わせを行いま
す。
http://www-01.ibm.com/software/rational/support/contact.html
© 2010 IBM Corporation
- 42 -
Fly UP