ページ リクエスト プロファイリングを使用してパフォーマンス低下をトラブルシューティングする
このページでは、ページ リクエスト プロファイリングを有効にする方法を紹介します。プロファイリングがオンの場合、Confluence ページで実行される各操作の完了にかかる時間(ミリ秒)のレコードが表示されます。Confluence の応答が遅い場合、遅延の原因を特定するのに遅いページ リクエストの内部タイミング トレースが役立ちます。
Confluence サーバーにアクセスし、プロファイルを表示する必要があります。
ページリクエスト プロファイリングの有効化
遅いマクロの実行をただ確認するには、「遅いマクロの実行の特定」を参照します。
プロファイリングを有効または無効にするには、システム管理者グローバル権限が必要です。
プロファイルを有効化または無効化するには、次の手順を実行します。
- > [一般設定] > [ログとプロファイルの作成] に進みます。
- [プロファイリングの有効化] または [プロファイリングの無効化] を選択します。
There is a known issue with the logging and profiling screen. See CONFSERVER-58861 - Getting issue details... STATUS
回避策として、プロファイリングを手動で有効化できます。
- > [一般設定] > [ログとプロファイルの作成] に進みます。
[新しいエントリの追加] から、以下を [クラス/パッケージ名] フィールドに貼り付けます。
com.atlassian.util.profiling.Timers
- ロギング レベルを [デバッグ] に設定します。
- [エントリの追加] を選択します。
プロファイリングを無効にするには、一覧で com.atlassian.util.profiling.Timers
エントリを見つけて [削除] を選択します。
スクリーンショット: ログレベルの変更とプロファイル作成
アクティビティのプロファイリング
- 上記のメソッドのいずれかを使用して、プロファイリングを有効化します。
すべてのページ ヒット、すべてのユーザーに対するプロファイルは、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_HOME\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 に戻すことを忘れると、ログが非常に大きくなります。