基本的なパフォーマンスのトラブルシューティングの手順
以下の手順を行います。
- Go through the Troubleshooting Confluence hanging or crashing page to identify the major known performance problems.
- Proceed with the Performance Tuning tips to help optimize performance.
基本的なパフォーマンスのサポートのリクエスト
If the above tips don't help or you're not sure where to start, open a support ticket starting with at least the basic information:
- A support zip, containing log files and configuration, ideally with a series of thread dumps separated by 10 seconds.
- 以下に関する可能な限り詳細な情報:
- システムに加えた変更
- パフォーマンスの問題が始まった時期
- パフォーマンスの問題が発生した時間
- パフォーマンスの問題が起きたページまたは操作
- パターンがあるかどうか
可能な限り多くの詳細なパフォーマンスのトラブルシューティング情報を記入してください。
高度なパフォーマンスのトラブルシューティング
問題を解決するためのいいアイディアが思いついたとしても、以下に記載されている情報をすべて収集し、サポートのリクエストに含めてください。そうすることで、あとから追加で情報の提供を依頼する必要がなくなります。
システム情報
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
Load
This graph shows the load for two consecutive days. The obvious pattern is that the machine is under decent load, which corresponds to the user activity, and there is no major problem.
Resin スレッドおよびデータベース コネクション
Active number of Java Threads
この2つのグラフは、アプリケーション サーバーのアクティブなスレッド(1つ目のグラフ)と、データベース コネクション プールのサイズ(2つ目のグラフ)を示しています。見ての通り、サーバー スレッドの急激なスパイクと、それに対応する db コネクションのスパイクがあります。
The database connection pool size
データベース コネクション プールのサイズのピークは112を超え、データベースが設定されるコネクションの最大数(100)を超えます。多くのリクエストが重要なデータベースのコネクションを取得できない可能性があるため、Confluence へのリクエストがいくつか失敗し、これを使用する多くのユーザーがクラッシュすることに驚きはありません。
これらのグラフを見ると、非常に簡単に設定の問題を特定することができます。多くのデータベース コネクションが有効であったため、次のスパイクは重要ではありません。
つまり、これは継続的に Confluence システムを監視するのに役立ち(我々は Hyperic などを使用しています)、問題が発生した際にグラフを送信するとさらに役立ちます。
アクセス ログ
- Access logging is enabled by default. You can find Confluence access logs at
<confluence install>/logs/conf_access_log.<date>.log
. These logs are configured in the server.xml. Refer to the Tomcat Access Log Valve documentation for more information on the attributes that can be logged. - You can also chose to enable access logging in your application logs via the log4j configuration. See Internal Only - How to Enable User Access Logging, including how to redirect the logs to a separate file
You can run these access log files through a log file analyzer such as AWStats, or manually look for pages which are slow to load.
プロファイリングおよびログ記録
- Enable Confluence's built-in profiling for long enough to demonstrate the performance problem using Troubleshooting Slow Performance Using Page Request Profiling.
- 単一のページが確実に遅い場合、そのページに対するいくつかのリクエストを作成する必要があります。
- パフォーマンスの問題が断続的な場合、または全体的に遅い場合、時間のプロファイリングの良いサンプルとするために、30分から1時間、有効なプロファイリングを残しておきます。
- (上記のプロファイリング データを含む) Confluence の標準出力ログを見つけます。ログ ディレクトリ全体を zip 化します。
- Take a thread dump during times of poor performance
CPU 負荷
- If you are experiencing high CPU load, please install the YourKit profile and attach two profiler dumps taken during a CPU spike. If the CPU spikes are long enough, please take the profiles 30-60 seconds apart. The most common cause for CPU spikes is a virtual machine operating system.
- If the CPU is spiking to 100%, try Live Monitoring Using the JMX Interface.
次のステップ
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.