Jira Data Center で HTTP 接続プール比率を管理する
HTTP 接続プール比率は、Jira Data Center クラスター内のアクティブな HTTP 接続とアイドル状態の HTTP 接続の比率を測定したものです。このメトリックは、システムでの受信 HTTP リクエストの処理状況およびシステム全体のパフォーマンスを把握するために重要です。
しきい値 | |
|---|---|
最適 | 使用率が 50% 未満 |
注意が必要 | 使用率が 50 ~ 80% の間 |
NEEDS ATTENTION (要注意) | 使用率が 80% を超過 |
HTTP 接続プール比率が高いと、Jira Data Center のパフォーマンスにどのような影響があるか
HTTP 接続プール比率が高いと、次のいくつかの点で Jira Data Center インスタンスに大きな影響を及ぼす可能性があります。
リクエスト処理時間の増加
ユーザー リクエストの潜在的なタイムアウト
クラスター ノード全体でのリソース使用率の上昇
システム スループットの低下
(極端なケース) システムの停止または応答不能
HTTP 接続プール比率が常に高い場合、Jira Data Center クラスター全体でのパフォーマンスとユーザー エクスペリエンスが低下する可能性があります。
推奨事項
最適なパフォーマンスを実現するには、HTTP 接続プール比率を 50% 未満に保つことを目指してください。比率が常にこのしきい値を超えている場合は、次のアクションを検討してください。
HTTP 接続プールの利用状況を監視する
スレッド プール構成を最適化する
スレッド ダンプを分析する
キャッシュ戦略を実装する
インスタンスのパフォーマンスを最適化する
HTTP 接続プールの利用状況を監視する
HTTP スレッド プールの利用状況を定期的に監視することで、パターンや潜在的な問題を特定し、クリティカルな状況を未然に防ぐことができます。
パターンや潜在的な問題を特定できるように定期的な監視をセットアップします。
すべての Jira Data Center ノードで JMX 監視を有効にします。
HTTP スレッド プールのメトリックを収集するように監視ツールを設定します。
利用状況パターンを分析し、使用率が常に高い期間を探します。
IT チームと協力して、特定した問題に対処します。
Jira Data Center で JMX インターフェイスを使用してライブ モニタリングをセットアップする方法を学びましょう。
高度な監視については、「Prometheus と Grafana で Jira を監視する」を参照してください。
スレッド プール構成を最適化する
HTTP スレッド プールの適切なサイズ設定は、最適なパフォーマンスを維持するために重要です。
Tomcat の現在の maxThreads 設定を確認します。
最適な maxThreads を計算します。
ノードあたりの最大リクエスト数を決定します。
Max requests per node = maxRequestsPerMinute / 60 / numberOfNodes, eg: 8350 / 60 / 4 = 35
必要な HTTP スレッド数を計算します。
Number of http threads required per second = maxRequestsPerMinute * AvgTimeToCompleteEachRequest, eg:Maximum: 35 * 2.6 = 91
将来的な増加を見越して切り上げます。
maxThreads = 100
各ノードの <jira-install>/conf/server.xml の maxThreads 値を調整します。
Jira を再起動し、変更後のパフォーマンスを監視します。
Jira の HTTP およびデータベース接続プーリング スレッドの調整の詳細を確認する
スレッド ダンプを分析する
HTTP 接続プール比率が常に 80% (不良状態) を超えている場合は、スレッド ダンプを分析すると根本原因を特定するのに役立ちます。
スレッド ダンプを分析するには、次の手順に従います。
スレッド ダンプを生成します。
Jira の組み込みツールまたはコマンドライン ユーティリティを使用して、HTTP スレッドの使用率が高い時間帯にスレッド ダンプを生成します。
クラスター内のすべてのノードからダンプを収集します。
スレッド ダンプを分析します。
ブロックされたスレッドや長時間実行中のスレッドのパターンを探します。
問題の原因となっている可能性のあるカスタム コードまたはプラグインを特定します。
ソリューションを実装します。
特定した問題のあるコードまたは構成を最適化します。
過剰なスレッド使用率を引き起こすプラグインを無効にするか置き換えることを検討します。
監視と反復を継続します。
変更の実装後も、改善に向けて監視を継続します。
スレッド ダンプの生成と分析の手順については、「スレッド ダンプを生成する」および「スレッド ダンプを取得して分析する方法」を参照してください。
インスタンスのパフォーマンスを最適化する
Jira Data Center ノードを適切なサイズに設定して最適化すると、HTTP 接続プールの負荷を軽減するのに役立ちます。
インスタンスのパフォーマンスを最適化するには、次の手順に従います。
ノードのサイズ設定を確認します。
各ノードが推奨仕様を満たしているか、それを上回っていることを確認します。
クラスターの負荷が常に高い場合は、ノードを追加することを検討します。
データベースのパフォーマンスを最適化します。
データベース クエリを確認して最適化します。
データベース接続のレイテンシが推奨しきい値内であることを確認します。
スケジュールされたジョブを確認して最適化します。
スケジュールされたジョブのうち、リソースを大量に消費するジョブを特定します。
可能であれば、オフピーク時に実行するようにジョブ スケジュールを調整します。
リソースを大量に消費するジョブをずらして、実行が重複しないようにします。
アプリ設定を最適化します。
キャッシュ設定を確認して調整します。
インデックス構成を最適化します。
適切なノード サイズのガイダンスについては、「クラスター化された Jira 環境でのノードのサイズ設定」を参照してください。
その他の考慮事項
高度な診断を行うために Java Flight Recorder (JFR) を有効にします。
[管理] > [トラブルシューティング] > [サポート ツール] > [診断設定] に移動します。
JFR セクションでランタイム診断を有効にします。
必要に応じて、JFR 記録のサイズと期間の値を大きくして、監視期間を長くします。
アトラシアン サポートを通じて追加のサポートを求めます。
すべてのクラスター ノードのサポート zip ファイルを添付します。
Tomcat のアクセス ログをサポート zip に含めます ([zip をカスタマイズ]、[Tomcat のアクセス ログ] の順に選択します)。
スレッド使用率が高いことが確認できたら、できるだけ早急にサポート zip を生成します。