Jira Data Center のサンプル デプロイメントおよび監視戦略

アトラシアンでは、特に顧客向けのサービスにおいて、エンタープライズ規模の複数の開発ツールを使用しています。例として、次の 2 つのサービスがあります。

これらのサービスは個別の Jira Data Center インスタンスで実行されています。現在まで、両方のインスタンスで合計 190 万件のチケットを追跡し、約 480 万ユーザーのユーザー ベースを利用しています。 

Jira Data Center 8.4 の監視機能

この記事の公開の数か月前にリリースされた Jira Data Center 8.4 では、いくつかの監視機能を追加しました。Jira Data Center デプロイメントのパフォーマンスの監視方法の最新情報については、「Jira Data Center の監視」を参照してください。

アトラシアンでの Jira Data Center インスタンスの使用方法

getsupport.atlassian.com と jira.atlassian.com は両方とも、すべてのタイムゾーンにわたる顧客とアトラシアン社員によって使用されます。これは、これまでに取り上げたインスタンスよりもはるかに大きなユーザー ベースに変換されます。公開サービスのため、高可用性と優れた応答時間を維持する必要があります。これにより、エンタープライズ レベルの高い負荷においても Jira Software Data Center と Jira Service Management Data Center のパフォーマンスを確保可能であることを実演しています。


負荷とスケールの詳細はこちらをクリック

コンテンツ

次の統計情報は、各インスタンスのサイズとデータの複雑性を示すのに役立ちます。 

統計情報

getsupport.atlassian.com

jira.atlassian.com

課題126 万以上661,000
プロジェクト38140
カスタム フィールド157224
ワークフローアクティブ2194
合計45242
合計ユーザー数11 万以上368 万以上
グループ14861
コメント86 万以上138 万以上
権限スキーム8491
課題セキュリティ レベル623
カスタム フィルター (共有)8,5003,500

トラフィック

次の統計情報は、各インスタンスがサポートする負荷の量を示すのに役立ちます。


統計情報
getsupport.atlassian.comjira.atlassian.com

1 時間当たりのアクティブなデータベース コネクション数

月平均

6262
週平均6262
ピーク6563
HTTP レベルのスループット


1 時間あたりの合計平均22,500 以上37,000 以上
1 時間当たりの最大数約 43,000約 51,000

1 時間あたりの同時接続ユーザー数

平均して、1 時間当たり約 5000 の同時接続ユーザー平均して、1 時間当たり約 3500 の同時接続ユーザー


参考情報

  • 1 時間あたりのアクティブなデータ コネクションでは、サンプルとして 2018 年 5 月の 1 か月のトラフィック データを使用しています。1 時間当たりの同時接続ユーザー数および HTTP レベル スループットでは、低トラフィックとなる週末の時間をフィルタリングするため、2018 年 6 月の連続した 5 営業日のトラフィック データを使用しています。
  • 1 時間あたりのアクティブなデータベース コネクション: DatabaseConnections メトリックを通じてこれを追跡します (「Amazon RDS メトリックとディメンション」を参照)。これらのオープンなコネクションのほとんどは、事前に割り当てられています。ピークと平均との偏差が小さいため、データベースの最小スレッド プールが適切に設定されていることがわかります。
  • 1 時間当たりの同時接続ユーザー数: 1 時間のうちに作成された、新しい承認済みセッションの数を数えました。これらのユーザーはその 1 時間の間、サイト上に滞在しているとみなします。
  • HTTP レベルのスループット: ロード バランサ経由で行われたリクエストの数を数えました。

両方のインスタンスで選択された 12 時間のトラフィック サンプルを使用すると、ほとんどのユーザーが、課題の作成、ダッシュボードの表示やその他のアクティビティよりも課題の表示に時間を費やしていることがわかります。

アトラシアンのサポートおよび開発チームもこれらのサービスを使用して、顧客やパートナーと共同でチケットを追跡しています。このため、社外のユーザーとのコラボレーションのために、これら両方のサービスが必須となります。

いずれのインスタンスも 1 日を通じてトラフィック量が非常に多く、ほとんどの場合は予測可能な、スパイクがあります。これらは Data Center インスタンスであるため、高い可用性を実現しており、個々のノードの障害は致命的な問題にはなりません。したがって、アップタイムの維持よりもパフォーマンスの管理に集中することができます。 

インフラストラクチャとセットアップ

Jira Data Center インスタンスは、個別の Amazon Web Services (AWS) 仮想プライベート クラウド上でホストされています。これらは、データベースとアプリケーション クラスターに使用されているノードを除き、同じトポロジーおよび構成を使用しています。 

機能インスタンス タイプ数値
getsupport.atlassian.comjira.atlassian.com
Jira アプリケーション

c5.9xlarge

m4.4xlarge3
データベース (Amazon RDS Postgresql)

db.m4.4xlarge

db.m4.2xlarge1
Load balancerAWS Application Load Balancer1
ストレージおよびファイル システムElastic File System 3


Each node in getsupport.atlassian.com's Jira application cluster uses one local 240GB disk, storing both /root and Jira index cache. In jira.atlassian.com, the application cluster nodes use a separate 40GB disk for /root and 30GB disk for the Jira index cache. The getsupport.atlassian.com instance has almost double the number of issues compared to jira.atlassian.com, which accounts for the large difference in disk size. In addition, both instances' application clusters do not auto-scale (as we don't support this).

Other than the node types and the size of each application node's disk, getsupport.atlassian.com and jira.atlassian.com are configured identically:


コンポーネント

構成

データベース (Amazon RDS Postgresql)データベース ノードはシングルインスタンス用の高可用性を有効化した汎用 SSD ストレージを使用しています。
Load balancerロード バランサにはターゲット グループが 1 つだけあります。
ストレージおよびファイル システム

各インスタンスでは次のそれぞれについて、3 つの Elastic File System 共有ボリュームを使用します。

  • 共有構成
  • 共有ホーム
  • 共有バイナリ
JVM24 GB の最大ヒープ サイズ (G1 ガベージ コレクターを使用)

Application nodes

各ノードでは、スワッピングも無効化されています。これは、スワッピングにより、Jira のパフォーマンスが低下する可能性があるためです。

代わりに、G1 ガベージ コレクターを使用して最大ヒープ サイズを 24GB に設定しています。これにより、ノードは常に十分なメモリを確保できるようになります (つまり、スワップは不要になります)。

連携サービス

The getsupport.atlassian.com instance has 43 user-installed apps enabled, while jira.atlassian.com has 40. Both instances use OpenID to authenticate users directly against an Active Directory store.

次の表は、各インスタンスでリンクされているアトラシアン アプリケーションの組み合わせを示しています。

アトラシアン アプリケーションgetsupport.atlassian.comjira.atlassian.com
Jira1113
Confluence58
Bitbucket02
Bamboo017
Fisheye/Crucible02
その他11

監視戦略

ここで説明している戦略は、アトラシアンのビジネス ニーズや利用可能なリソースに沿ったものです。ニーズやイベントはそれぞれのエンタープライズ環境によって異なり、それに応じて別の戦略が必要になる可能性があります。アトラシアン Advisory Service にご相談ください。

We keep a different update cadence for both instances; getsupport.atlassian.com gets updated every Long Term Support release, and jira.atlassian.com with each feature release. We quickly apply the latest bug fix release for each as well.

ほとんどのアップデートでは、過去に発生したサービス停止や深刻な問題を防ぐための修正や最適化が行われています。アップデート頻度を考慮すると、1 つのリリースで設定したしきい値が次のリリースでは利用できなくなる可能性があるため、アラートの設定が困難な場合があります。当社の経験では、リリースをまたいで問題が継続することはめったにありません。

アトラシアンで使用しているアラートでは、幅広い範囲の潜在的な問題に焦点を当てると同時に、過去に発生したことのない問題についても警告しています。このアラートは、複数のリリースを通じ、未知のものを含む新しい問題について一貫して警告します。次のセクションでは、アトラシアンで使用しているアラートと使用プラクティスについて説明します。

継続的なスパイクに焦点を当てる

Both getsupport.atlassian.com and jira.atlassian.com get regular traffic spikes that can drive up resource usage. These spikes can sometimes hit critical levels (for example, 90% of CPU usage), but Jira can recover gracefully from most of them. Because of this, setting an alert for when metrics hit certain thresholds can set off many false positives.

アトラシアンでは、継続的なスパイクを監視します。ノード メトリックが長時間酷使されたとき、つまり、メトリックが特定のしきい値内にある時間が長すぎるタイミングを取得します。これを行うため、各ノード アラートに 3 つのディメンションを設定します。

  1. 時間間隔
  2. 警告レベル
  3. 重要レベル

アトラシアンではサードパーティ製の監視ツールを使用して、特定のメトリックのサンプルを取得し、メトリックが設定した期間に特定のしきい値内にとどまっているかどうかを計算しています。これにより、ノードの空きディスク容量が 10 % 未満になったタイミングなどを無視することができます。代わって、空きディスク容量が 10 分間の間 10 % 未満になると、アラートを受け取ります。

ノード

追跡するメトリック期間 (分)警告レベル重要レベル

IOWait
I/O 操作が完了するの待機する間、CPU がアイドル状態になっている時間を追跡します。 

10> 15 % > 30 %

システム CPU 時間
カーネル スペース内で CPU が消費する時間の量を表します。 

5> 80 %> 90 %

残りディスク容量
使用量に対応できるようにディスク容量を拡張するか、ストレージ関連の問題についてさらに確認する必要があるかどうかを、早い段階で知っておく必要があります。

10< 10 %なし

使用可能なメモリ
各ノードに使用可能な物理 RAM が十分に残っていることを確認する必要があります。

5< 5 %< 3 %

JVM

アトラシアンでは、Jira のプロセスが稼働中かどうかを定期的に確認するため、サードパ-ティ製のツールを使用しています。また、次のアラートを使用して、すべてのアプリケーション クラスター ノードの JVM の健全性を監視しています。これらのアラートは、インスタンスの速度が低下している可能性がある場合や、ノードがオフラインになりそうな場合に警告を表示するのに役立ちます。 

追跡するメトリック期間 (分)警告レベル重要レベル

ガベージ コレクション時間
ガベージ コレクションでの CPU 時間が多すぎると、アプリケーション ノードの速度が低下します。

5> 10 %> 20 %

Java ヒープ メモリの消費量
この警告は、使用中の最大 Java ヒープ メモリを追跡します。このアラートのトリガー頻度が多すぎる場合、メモリ リークや、JVM ヒープの微調整が必要な可能性があります。

5> 90 %> 95 %

HTTP レスポンスの監視 

We measure the HTTP response time of getsupport.atlassian.com and jira.atlassian.com to get a quick overview of their performance. To do this, we periodically ping both instances from three US regions. Our on-duty admins are automatically notified whenever:

  • HTTP レスポンス時間が 7-10 秒 (警告)
  • HTTP レスポンス時間が 10 秒以上 (致命的)
  • ping が 200 (OK) と 302 (リダイレクト) 以外の HTTP リターン コードを返す

ロード バランサの ヘルス チェック

30 秒ごとに、ロード バランサで自動化されたヘルス チェック リクエストが実行されます。リクエストは 29 秒後にタイムアウトとなり、その時点でもう一回リクエストが実行されます。

ロード バランサで連続して 2 回タイムアウトが発生すると、unhealthy というラベルが付けられます。ヘルス チェック リクエストは継続されます。そのあとに連続して 2 回ヘルス チェックに成功すると、ロード バランサに再び healthy というラベルが付けられます。

ロード バランサに unhealthy のラベルが付けられると、アトラシアンの当直の管理者に通知が送信されます管理者が調査を開始する時間までに healthy になっていた場合、管理者はロード バランサの回復にかかった時間を確認します。

ログの切り替え

アトラシアンでは、ログをリアルタイムで別のサーバーに保存しています。これにより、すべてのノードからのログを組み合わせ、クラスター全体を分析することができます。特定のノードの問題を追跡する必要がある場合に備え、それぞれのログ ストリームのステートメントにはノード ID を含めています。 

ログの整理と保存を別のサーバーで行っているため、各ノードでは古いログを 1 時間ごとに削除できます。各ノードは 5 時間より古いログを自動的に削除します。この処理を自動化することで、ログがディスク容量を消費しすぎるのを防ぎます。ノードでディスクの空き容量がなくなるとデータベースは応答しなくなり、これが発生するとインスタンス全体がオフラインになるため、データベースでは特にこの処理が重要になります。 


Atlassian が提供するサービス

当社では、ニーズの変化、アプリの改善、新しい知見などに基づいて、インスタンスや監視戦略を再構成する可能性があります。独自の Data Center インスタンスのデプロイや互換性のある監視戦略の構築に関してガイダンスが必要な場合は、アトラシアン Advisory Serviceお問い合わせください

アトラシアンのプレミア サポート チームは、お客様のアプリケーションのデプロイメントがユーザーのニーズを完全に満たしていることを確認するためにヘルス チェックを実行し、アプリケーションとログを慎重に分析します。ヘルス チェックでパフォーマンスのギャップが判明した場合、プレミア サポートがお客様のデプロイメントで実施可能な変更を提案いたします。

また、重要なイベントが発生した際に、ボトルネックを分析してアラートを表示するために使用できる、多数のモニターを導入しました。詳細は、「Jira Data Center の監視」を参照してください。



最終更新日: 2024 年 1 月 26 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.