ページ リクエスト プロファイリングを使用してパフォーマンス低下をトラブルシューティングする
このページでは、ページ リクエスト プロファイリングを有効にする方法を紹介します。プロファイリングがオンの場合、Confluence ページで実行される各操作の完了にかかる時間(ミリ秒)のレコードが表示されます。Confluence の応答が遅い場合、遅延の原因を特定するのに遅いページ リクエストの内部タイミング トレースが役立ちます。
Confluence サーバーにアクセスし、プロファイルを表示する必要があります。
ページ リクエスト プロファイリングの有効化
プロファイリングを有効または無効にするには、システム管理者グローバル権限が必要です。
プロファイルを有効化または無効化するには、次の手順を実行します。
- [管理] > [一般設定] > [ログとプロファイルの設定] に移動します。
- Confluence をクラスタで実行する場合は、クラスタ ノードを選択します。
- [プロファイリングの有効化] または [プロファイリングの無効化] を選択します。
スクリーンショット: ログレベルの変更とプロファイル作成
アクティビティのプロファイリング
- 上記のメソッドのいずれかを使用して、プロファイリングを有効化します。
すべてのページ ヒット、すべてのユーザーに対するプロファイルは、Confluence が再起動されるまで、アプリケーション サーバーのデフォルト ログに記録されるようになります。ユーザがリンクを訪れる度、1つのプロファイルが出力されることに注意してください。 - プロファイルが Confluence ログ ファイルに記載されることを確認します。 — ログファイルの場所とその他の詳細については、「Confluence ログを使用する」を参照してください。
- 異常に応答時間が遅いアクティビティを実行します。
- そのアクションについてのプロファイルをコピーします。コピーするプロファイルを決定したら、応答にかかる時間が長いリンクを探します。1つのページが遅い場合、そのプロファイルのみが必要です。Confluence が全体的または断続的に遅い場合、妥当なサンプルが集まるまで、遅くなっている間に記録されたすべてのプロファイルをコピーします。
- アトラシアンのテクニカル サポートからインスタンスをプロファイリングするように指示された場合は、関連するすべてのプロファイルをサポート チケットに添付してください。
- 上記の方法のいずれかを使用して、再度プロファイリングをオフにします。
- プロファイルが Confluence ログ ファイルに出力されなくなったことを確認します。
プロファイルの例
以下は Confluence の概要と呼ばれるページにアクセスするための通常のプロファイルの最初の数行です。
[344ms] - /display/ds/Confluence+Overview
[313ms] - SiteMesh: parsePage: http://localhost:8080/display/ds/Confluence+Overview
[313ms] - XW Interceptor: Before defaultStack: /pages/viewpage.action (ViewPageAction.execute())
[0ms] - SpaceAwareInterceptor.intercept()
[16ms] - PageAwareInterceptor.intercept()
[0ms] - AOP: PageManager.getPage()
[16ms] - AOP: PermissionManager.hasPermission()
[0ms] - AOP: SpacePermissionManager.hasPermission()
[16ms] - AOP: SpacePermissionManager.hasPermission()
[0ms] - AOP: SpacePermissionManager.hasPermission()
[0ms] - AOP: SpacePermissionManager.hasPermission()
[281ms] - XW Interceptor: After defaultStack: /pages/viewpage.action (ViewPageAction.execute())
[281ms] - XW Interceptor: After validatingStack: /pages/viewpage.action (ViewPageAction.execute())
...
インデントされた各行は、親の行にロール アップする再帰呼び出しであることに注意してください。この例では、Confluence の概要ページに 344ms かかっています。その一部の 313ms は sitemesh にかかっています。
プロファイルを有効化して Confluence を起動する
起動時に Confluence プロファイリングを有効にするための解決策がいくつかあります。頻繁に再起動したり、サポート/トラブルシューティング目的の場合にプロファイリングを有効にするのを忘れたりした場合に、これが役に立つ場合があります。
CONFLUENCE_INSTALL\confluence\WEB-INF\web.xml ファイルを編集します。次に示すようなセクションが見つかるはずです。autostart のパラメーター値を true に設定します。
<filter>
<filter-name>profiling</filter-name>
<filter-class>com.atlassian.confluence.util.profiling.ConfluenceProfilingFilter</filter-class>
<init-param>
<!-- specify the which HTTP parameter to use to turn the filter on or off -->
<!-- if not specified - defaults to "profile.filter" -->
<param-name>activate.param</param-name>
<param-value>profile</param-value>
</init-param>
<init-param>
<!-- specify the whether to start the filter automatically -->
<!-- if not specified - defaults to "true" -->
<param-name>autostart</param-name>
<param-value>true</param-value>
</init-param>
</filter>
これを false に戻すことを忘れると、ログが非常に大きくなります。
パフォーマンスが遅いマクロの特定
ページ プロファイリングでは、ページの読み込み時にどの操作が遅くなるかを詳細に把握できます。また、デバッグ レベルのログを追加して、実行速度の遅いマクロを特定しやすくすることもできます。
- [管理] > [一般設定] > [ログとプロファイルの設定] に移動します。
- Confluence をクラスタで実行する場合は、クラスタ ノードを選択します。
com.atlassian.renderer.v2.components.MacroRendererComponent
パッケージを追加して、レベルを DEBUG に設定します。