YourKit プラグインを使用したプロファイリング
YourKit プロファイラーを使用したプロファイリングを容易にする Confluence 2.2 以降用のプラグインがあります。メモリや CPU スナップショットを生成するためにライセンスは必要ありませんが、結果を分析するために少なくとも評価ライセンスが必要となります。
On this page:
JVM で YourKit を構成する
お使いのプラットフォーム向けの YourKit 6.0 をダウンロードし、インストール手順に従ってインストールしてください。
注: YourKit バージョン 7 には、Confluence yourkit プラグインとの互換性はありません。
次の説明は、Oracle (以前の Sun) JDK を使用した Confluence および Tomcat のインストールに適用されます。これらは、他のアプリケーション サーバーや JVM では簡単に適用することができます。詳細は YourKit ドキュメントを参照してください。
Windows の構成
Windows では、YourKit インストール ディレクトリの下の bin/win32/
ディレクトリの PATH 環境変数を追加します。たとえば、[コントロール パネル] > [システム] > [詳細] > [環境変数] 経由で、PATH に "C:\Program Files\YourKit Java Profiler 6.0.12\bin\win32" を追加することができます。
Confluence の JVM が YourKit エージェントを使用するように設定するには、Confluence のアプリケーション ディレクトリの bin/setenv.bat
ファイルの CATALINA_OPTS にパラメーターを追加する必要があります。このファイルは Tomcat の startup パラメーターを制御するため、変更後に再起動する必要があります。
末尾に、次のような 'agentlib' パラメーターを追加します。
set CATALINA_OPTS=%CATALINA_OPTS% -Xms1024m -Xmx1024m -XX:MaxPermSize=256m -XX:+UseG1GC -agentlib:yjpagent
Linux/Mac OS X の設定
Unix ベースのシステムでは、次のように、ライブラリパス環境変数にインストール ディレクトリが含まれます。
- Mac の場合:
export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/path/to/yourKitAgent
- 他の Unix ベースのシステムの場合:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/yourKitAgent
一般に、JDK を設定するには、agentlib
パラメーターを追加します。
java -agentlib:yjpagent ...
これを、Tomcat の bin/setenv.sh
に追加できます。例:
CATALINA_OPTS="$CATALINA_OPTS -Djava.awt.headless=true" -agentlib:yjpagent "
パフォーマンスの影響
YourKit の実行はパフォーマンスに影響を与える可能性があります。
パフォーマンスの問題を最小限に抑えるため、agentlib パラメーターで次の変更を使用します。
-agentlib:yjpagent=disablecounts,disablealloc,disablej2ee
YourKit ドキュメントの「Profiling overhead: how to reduce or avoid」も参照してください。
YourKit プラグインのインストール
プラグインをダウンロードし、管理、プラグイン ページから Confluence にアップロードします。
新しいメニュー オプション「YourKit プロファイル」が「管理」見出しの下に表示されます。これをクリックスト、メモリまたは CPU スナップショットへ移動するオプションが表示されます。
このプロファイラー ダンプはローカルの一時ディレクトリに保存され、完了するとパスを示します。CPU スナップショットの場合は、30 秒以上かかります。メモリ スナップショットの場合は、10~15 秒かかります。
スクリーンショット: メモリまたは CPU スナップショットへ移動できます
この操作を行う理由
プロファイラー ダンプを分析することで、アトラシアン サポート (または関心を持っている場合はユーザー) はアプリケーションに何が発生したかを正確に確認することができます (メモリを使用しているクラス、CPU を使用しているのは何かなど)。これにより、高度なパフォーマンスの問題をデバッグするのに役立ちます。これを使用しない場合、リモートで分析することはできません。
次の場合に CPU スナップショットを作成します。
- Confluence が応答しない場合がある
- ページの読み込みに時間がかかる
- Confluence の CPU 使用率がピークに達しています。
次の場合にメモリ スナップショットを作成します。
- Confluence のメモリ使用量が予想より多い
- ログに OutOfMemoryError が表示される
Confluence が応答せず、メモリ スナップショットをトリガーできない場合、次のように JVM オプションの onexit=memory
パラメーターで Confluence を起動し、Confluence をシャットダウンします。シャットダウン前に、メモリ スナップショットが作成されます。
-agentlib:yjpagent=onexit=memory