パフォーマンス サポートのリクエスト
基本的なパフォーマンスのトラブルシューティングの手順
以下の手順を行います。
- 「ハングアップやクラッシュに関するトラブルシューティング」ページに移動し、広く知られているパフォーマンスの問題を特定します。
- パフォーマンスの最適化に役立つ「パフォーマンスのチューニング」のヒントを実行します。
基本的なパフォーマンスのサポートのリクエスト
上記のヒントが有効ではない、または開始する場所がわからない場合、サポート チケットを開いて、少なくとも以下の基本的な情報を添付します。
- サポート zip には、ログ ファイルと設定が含まれています。10 秒単位で区切られた一連のスレッド ダンプを持つことが理想です。
- 以下に関する可能な限り詳細な情報:
- システムに加えた変更
- パフォーマンスの問題が始まった時期
- パフォーマンスの問題が発生した時間
- パフォーマンスの問題が起きたページまたは操作
- パターンがあるかどうか
可能な限り多くの詳細なパフォーマンスのトラブルシューティング情報を記入してください。
高度なパフォーマンスのトラブルシューティング
問題を解決するためのいいアイディアが思いついたとしても、以下に記載されている情報をすべて収集し、サポートのリクエストに含めてください。そうすることで、あとから追加で情報の提供を依頼する必要がなくなります。
システム情報
Confluence Server
- Confluence の
Administration → System Information
のスクリーンショットを取得 (またはページを HTML として保存) します。 - Confluence の
Administration → Cache Statistics
のスクリーンショットを取得 (またはページを HTML として保存) します。 - Confluence が起動している正確なハードウェアを検索します。
- CPU数、メーカーとモデル、クロック数(Hz数)。
- マシンに搭載されているメモリの量。
- Confluence JVM に割り当てられているメモリ量(JVM 設定の -Xmx および -Xms の値)。
- 同じボックスにホストされている他のアプリケーション。
Confluence コンテンツ
- Confluence のユーザーの登録数。
- 各ユーザーが所属しているグループの平均数。
- Confluence サーバーにあるスペース(グローバルおよび個人用)の数。
- 平均的なユーザが参照できるスペース数。
- おおよそのページ数はいくつですか? (データベースに接続し、'
select count(*) from content where prevver is null and contenttype = 'PAGE'
' を実行します) - Bandana (プラグインの通常のデータの保存先) 内にはいくつのデータが保存されていますか? (データベースに接続し、'
select count(*), sum(length(bandanavalue)) from bandana
' を実行します)
データベース
- Confluence のデータベース サーバーの正確なバージョン番号。
- データベースへのアクセスに使用している JDBC ドライバの正確なバージョン番号(一部のデータベースについては、ドライバの JAR ファイルの完全なファイル名で十分です)。
- データベースが Confluence と同じサーバー上にホストされているかどうか。
- 異なるサーバーにある場合、Confluence とデータベース間のネットワーク レイテンシーの値。
- データベース接続の詳細。コネクション プールの大きさ。標準的な設定を使用している場合、この情報は confluence_cfg.xml ファイル内に記載されています。このファイルを収集してください。データソースを使用している場合、この情報はアプリケーション サーバーの設定ファイル内に保存されているため、このファイルを収集します。
ユーザー管理
- 外の部ユーザー管理または認証を使用しているかどうか (Jira または LDAP ユーザー委譲、シングル サインオンなど)。
- 外部の Jira ユーザー管理を使用している場合、Confluence と Jira のデータベース サーバー間のレイテンシーの値。
- LDAP ユーザー管理を使用している場合:
- 使用している LDAP サーバーのバージョン。
- Confluence と LDAP サーバーの間のレイテンシー。
診断
観測された問題
- 読み込みが遅いページ。
- 特定の wiki ページが遅い場合、そのページの wiki のソースコードを添付します。
- 常に読み込みが遅いか、または断続的に遅いかどうか。
データの監視
個々の問題を掘り下げる前に、データを監視すると、パフォーマンスの問題の性質を理解するのにかなり役立ちます。負荷が急に増加したか、または徐々に負荷が大きくなったか、または負荷が特定の状況でのみ致命的な閾値を超えるような特定のパターン(毎日、毎週、毎月)に従っていそうかどうかによって対処します。これは、大まかな概要を取得するのに利用できる連続的なデータの監視を行うのに役立ちます。
Here are sample graphs from the confluence.atlassian.com system, showing
負荷
このグラフは、連続した 2 日間の負荷を示しています。マシンには、ユーザーのアクティビティに対応する妥当な負荷がかかっており、大きな問題はありません。
Resin スレッドおよびデータベース コネクション
アクティブな Java スレッドの数
この2つのグラフは、アプリケーション サーバーのアクティブなスレッド(1つ目のグラフ)と、データベース コネクション プールのサイズ(2つ目のグラフ)を示しています。見ての通り、サーバー スレッドの急激なスパイクと、それに対応する db コネクションのスパイクがあります。
データベース コネクション プールのサイズ
データベース コネクション プールのサイズのピークは112を超え、データベースが設定されるコネクションの最大数(100)を超えます。多くのリクエストが重要なデータベースのコネクションを取得できない可能性があるため、Confluence へのリクエストがいくつか失敗し、これを使用する多くのユーザーがクラッシュすることに驚きはありません。
これらのグラフを見ると、非常に簡単に設定の問題を特定することができます。多くのデータベース コネクションが有効であったため、次のスパイクは重要ではありません。
つまり、これは継続的に Confluence システムを監視するのに役立ち(我々は Hyperic などを使用しています)、問題が発生した際にグラフを送信するとさらに役立ちます。
アクセス ログ
- アクセス ログは既定で有効化されます。Confluence のアクセス ログは
<confluence install>/logs/conf_access_log.<date>.log
にあります。これらのログは、server.xml で設定されます。ログに記録できる属性の詳細については、「Tomcat アクセス ログ バルブ」のドキュメントを参照してください。 - また、log4j 設定を介してアプリケーション ログでアクセス ログを有効にすることもできます。個別のファイルへのログのリダイレクト方法などについては、「ユーザー アクセスのログ取得を有効化する方法」を参照してください。
AWStats などのログ ファイル アナライザーを使用してこれらのアクセス ログ ファイルを実行したり、読み込みが遅いページを手動で検索したりすることができます。
プロファイリングおよびログ記録
- 「ページ リクエスト プロファイリングを使用してパフォーマンス低下をトラブルシューティングする」を使用して、十分な長さの Confluence の組み込みプロファイリングを有効にし、パフォーマンスの問題を証明します。
- 単一のページが確実に遅い場合、そのページに対するいくつかのリクエストを作成する必要があります。
- パフォーマンスの問題が断続的な場合、または全体的に遅い場合、時間のプロファイリングの良いサンプルとするために、30分から1時間、有効なプロファイリングを残しておきます。
- (上記のプロファイリング データを含む) Confluence の標準出力ログを見つけます。ログ ディレクトリ全体を zip 化します。
- パフォーマンスが低下している時間のスレッドダンプを取得します。
CPU 負荷
- CPU 負荷が高くなると予想されている場合、YourKit プロファイルをインストールし、CPU スパイク時の2つのプロファイラ ダンプをアタッチします。CPU スパイクが十分長い場合、プロファイルを30-60秒ごとに取得します。CPU スパイクの最も一般的な原因は、仮想マシン オペレーティング システムです。
- CPU が 100% にスパイクするようであれば、「JMX インターフェイスを使用したライブ モニタリング」を試します。
次のステップ
Open a ticket on https://support.atlassian.com/ja and attach all the data you have collected. This should give us the information we need to track down the source of your performance problems and suggest a solution. Please follow the progress of your enquiry on the support ticket you have created.