パフォーマンスおよび拡張のテスト

このページの内容

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

アトラシアンでは Jira の各リリースで、最新の Jira バージョンを過去のものと比較するパフォーマンスおよびスケーリング レポートを公開しています。このレポートには、さまざまなデータ次元 (カスタム フィールド、課題、プロジェクトなどの数) による Jira への影響についての結果も記載しているため、Jira のスケーリングで最良の結果を実現するために制限すべきデータ次元の判断に役立ちます。

これは Jira 7.12 のレポートです。他のレポートをお探しの場合、右上でバージョンを選択してください。


はじめに

一部の Jira 管理者は Jira の拡張方法について考えたとき、1 つの Jira インスタンスが保有できる課題数に焦点を与えることがよくあります。ただし、Jira インスタンスの規模を決める要因は課題数のみではありません。大きなインスタンスの実行方法について理解するには、複数の要因を検討する必要があります。

このページでは、異なるバージョンや構成で Jira を実行する方法について説明します。そのため、あなたがニーズの拡大に合わせて Jira を拡大する方法について理解する新人 Jira エバリュエータであっても、Jira を次のレベルに進めることに関心を持つ熟練した Jira 管理者であっても、このページが役に立ちます。

次の 2 つも主なアプローチを組み合わせ、組織全体で Jira を拡大することができます。  

  1. 1 つの Jira インスタンスを選択します。 
  2. Jira のクラスタリングを提供する Jira Data Center を使用します。

ここでは Jira を最大限活用するための、両方のアプローチに共通の手法について説明します。Jira Data Center の詳細や、同時負荷状態でのパフォーマンスを改善する方法については、Jira Data Center のページを参照してください。

1 つの Jira インスタンスの規模を決定する

組織内の Jira のパフォーマンスに影響を与える可能性のある要因は複数あります。これらの要因は次のカテゴリーに分類されます (特定の順序はありません):

  • データ サイズ
    • 課題、コメント、および添付ファイルの数
    • プロジェクトの数。
    • Jira プロジェクト属性の数 (カスタム フィールド、課題タイプおよびスキーム)。
    • Jira やグループに登録されているユーザー数。
    • ボード数、およびボード上の課題数 (Jira Software を使用している場合)
  • 使用パターン
    • Jira を同時に使用しているユーザー数。
    • 同時操作の数。
    • 電子メール通知の量。
  • 設定
    • プラグインの数 (一部は独自のメモリ要件を持っている場合がある)。
    • ワークフロー ステップ実行の数 (移行や事後操作など)。
    • ジョブの数とスケジュールされたサービス。
  • デプロイメント環境
    • 使用されている Jira のバージョン。
    • Jira が実行されているサーバー。
    • 使用されているデータベースとデータベースへの接続性。
    • オペレーティングシステム (ファイルシステムを含む)。
    • JVM 構成。

このページは、データベースに保存されているデータのサイズや特徴によって、Jira の速度がどのように影響を受けるかを示しています。

Jira 7.12 のパフォーマンス

Jira 7.12 はパフォーマンスのみに焦点を当てたバージョンではありませんでしたが、各リリースでは同等かそれ以上のパフォーマンスを提供することを目指しています。このセクションでは、Jira 7.12 を Jira 7.11 と比較します。同じ広範囲のテスト シナリオを両方の Jira バージョンに対して実行しました。シナリオ間の違いは Jira のバージョンのみです。

次のグラフは、Jira で実行された各種操作の平均応答時間を示しています。これらの操作と対象の Jira インスタンスの詳細については、「テスト手法」を参照してください。


Jira 操作の応答時間

各列は平均応答時間を示しています。値が小さいほどパフォーマンスが優れていることを表します。


テスト手法

以下のセクションでは、当社のパフォーマンス テストで使用するテスト環境 (ハードウェア仕様を含む) とテスト方法を詳しく説明します。


テスト方法...

テストを開始する前に、一般的な大きい Jira インスタンスを表すデータセットのサイズと形状を決定する必要があります。 

これを実現するため、顧客環境の全体像や、大組織で Jira を拡張する際に顧客が直面する問題を把握するため、Analytics データを使用しました。

次の表では、各データ ディメンションの 999 番目のパーセンタイルの値を切り捨てています。これらの値を使用して、Jira Data Generator でランダム テスト データが入ったサンプル データセットを生成します。

基準となる Jira データ セット

Jira データディメンション
課題 1,000, 000
プロジェクト 1500
カスタムフィールド 1400
ワークフロー 450
添付ファイル 660,000
コメント 2,900, 000
アジャイルボード 1,450
ユーザー情報 100,000
グループ 22,500
セキュリティ レベル 170
権限 200
実行した操作...

最も一般的なユーザー操作の例を表す混合操作を選択しました。このコンテキストにおける「操作」とは、ブラウザ ウィンドウで課題を開くなどの、完全なユーザー操作です。次の表は、ペルソナのテスト用にスクリプトに含めた操作の詳細と、1 回のテスト中に各操作が何回繰り返されるかを示しています。

操作名 説明 1 回のテストの間に操作を実行した回数
ダッシュボードの表示 ダッシュボード ページを開く。 10
課題の作成 課題の作成ダイアログを送信する 5
課題の表示 別のブラウザー ウィンドウで個別の課題を開く。 55
課題の編集 既存のフィールドのサマリー、説明およびその他のフィールドを編集する。 5
コメントを追加 課題へのコメント追加。 2
JQL の検索

課題ナビゲーター インターフェイスで JQL を使用して検索クエリを実行する。

次の JQL クエリが使用されました。
description ~ 'totally' or summary ~ 'hobos' and comment !~ 'propel' ORDER BY key
reporter was in (admin) and status = Closed order by createdDate

 

comment ~ 'contest* saw' and reporter was admin order by assignee desc

 

text ~ 'a* ba*' ORDER BY Status, summary

 

priority was in (Low, Lowest) or (status = 'In Progress' and assignee changed) or createdDate > '2016/07/02 00:00'

 

resolution = Unresolved and priority = Low

 

text ~ 'witch* doctrine' and status was not Closed order by priority

 

project = novemcinctus and assignee = admin ORDER BY assignee

 

assignee in membersOf('users_1') order by project

 

not (status = closed and resolution = Done and priority = High)

これらのクエリの半数は非常に重いため、平均応答時間の高さの原因となっています。

10
ボードの表示 Agile Board を開く 10
プロジェクトの参照 プロジェクトのリストを開く (プロジェクト > すべてのプロジェクトの検索メニューから利用できます) 5
ボードの参照 Agile Boards のリストを開く (Agile > ボードの管理メニューから利用できます) 2
すべての操作 1 回のテスト実行中に実行されたすべての操作の平均。 -
テスト環境...

すべてのパフォーマンス テストは、eu-central-1 リージョンにデプロイされた一連の AWS EC2 インスタンス上で実行されていました。テストごとに環境全体をリセットおよび再構築し、各テストの最初にはインスタンス キャッシュをウォームアップするためのアイドル サイクルを実行しました。以下で、Jira Server と Jira Data Center で使用された環境の詳細や、EC2 インスタンスの仕様を確認できます。

テストを実行するため、スクリプトを組んだブラウザを 10 個使用し、操作の実行にかかる時間を計測しました。各ブラウザーのスクリプトは、定義済みの操作リストからランダムに操作を実行し、すぐに次の操作に移る(つまり思考時間がゼロになる)ように記述されています。これによって各ブラウザは実際のユーザーが可能なタスクよりも実質的に多くのタスクを実行するため、ブラウザの数が実際の同時実行ユーザー数と等しくなると解釈することはできません。

各テストは 20分間実行され、その後、統計情報が収集されます。 


Jira Server Jira Data Center

Jira Server の環境の構成内容:

  • 1 Jira ノード
  • 別のノード上にあるデータベース
  • 別のノード上にあるロード ジェネレーター

Jira Data Center の環境の構成内容:

  • 2 Jira ノード
  • 別のノード上にあるデータベース
  • 別のノード上にあるロード ジェネレーター
  • 別のノード上にある共有ホーム ディレクトリ
  • ロード バランサ (AWS ELB HTTP ロード バランサ)
Jira
ハードウェア ソフトウェア
EC2 タイプ:

c4.8xlarge (EC2 タイプを参照)  

Jira Server: 1 ノード

Jira Data Center: 2 ノード

オペレーティング システム: Ubuntu 16.04 LTS
CPU: Intel Xeon E5-2666 v3 (Haswell) Java プラットフォーム: Java 1.8.0
CPU コア: 36 Java オプション:

8 GB heap


メモリ: 60 GB
ディスク: AWS EBS 100 GB gp2
データベース
ハードウェア ソフトウェア
EC2 タイプ: c4.8xlarge (see EC2 types)   データベース: MySQL 5.5
CPU: Intel Xeon E5-2666 v3 (Haswell) オペレーティング システム:


Ubuntu 16.04 LTS


CPU コア: 36
メモリ: 60 GB
ディスク:

Jira Server: AWS EBS 100 GB gp2

Jira Data Center: AWS EBS 60 GB gp2

ロード ジェネレーター
ハードウェア ソフトウェア
EC2 タイプ: c4.8xlarge (see EC2 types)   オペレーティング システム: Ubuntu 16.04 LTS
CPU: Intel Xeon E5-2666 v3 (Haswell) ブラウザ: Google Chrome 62


CPU コア: 36 自動化スクリプト:

Chromedriver 2.33

WebDriver 3.4.0

Java JDK 8u131

メモリ: 60 GB
ディスク: AWS EBS 30 GB gp2

Jira 7.12 の拡張性

Jira は柔軟なため、顧客の構成にはとてつもない多様性があります。Analytics データは、ほとんどの顧客データセットが、独自の特性を示していることを示します。異なる Jira インスタンスは、各データ ディメンションの異なる比率で増加します。いくつかのディメンションは他のディメンションより大幅に大きくなることが多くあります。たとえば、課題数が急速に増加する一方、プロジェクト数は一定数を維持することがあります。また、別の事例では、カスタム フィールドが膨大なのに、課題数が少なくなる場合があります。

多くの組織には独自のプロセスやニーズがあります。これらのさまざまな使用事例をサポートできる Jira の能力が、データセットの多様性の理由となっています。ただし、各データ ディメンションは Jira の速度に影響を与える可能性があります。多くの場合、これらの影響は一定または直線的ではありません。

それぞれの Jira インスタンス ユーザーに最適な体験を提供し、パフォーマンスの劣化を防ぐため、具体的な Jira データ属性がアプリケーションの速度にどのような影響を与えるかを理解することが重要です。このセクションでは、様アマナ構成値の相対的な影響を調査した Jira 7.12 拡張性テストの結果を示します。 

テスト方法

テスト用の参照として、上記で指定したベースライン データ セットとともに Jira 7.12 インスタンスを使用し、フル パフォーマンス テスト サイクルを実施しました。データ ディメンションとそれらのパフォーマンスへの影響に焦点を当てるため、個々の操作はテストしていませんが、代わりにすべての操作の平均を使用しました。次にベースライン データ セットで各属性を 2 倍にし、2 倍になった値に対して独立したパフォーマンス テストを実施し (例:課題数を 2 倍、またはカスタム フィールド数を 2 倍にしてテストを実行しました)、ベースライン データ セットのその他すべての値は変更せずそのままにしました。次に、2 倍にしたデータ セット テスト サイクルの応答時間を参照結果と比較しました。このアプローチを使用して、個別の Jira 構成アイテムのサイズの増加が (既に大規模な) Jira インスタンスの速度にどのように影響するかを、隔離した環境で観測できました。 

Jira データ セットの応答時間

各列は平均応答時間を示しています。値が小さいほどパフォーマンスが優れていることを表します。


その他のリソース

課題をアーカイブする

課題の数は Jira のパフォーマンスに影響するため、不要になった課題のアーカイブが望ましい場合があります。また、Jira のビューに多数の課題が表示され、不要になった古い課題をインスタンスからアーカイブしたい場合があります。「プロジェクトのアーカイブ」を参照してください。

ユーザー管理

Jira ユーザー ベースが増加すると、以下を確認する必要が出る場合があります。

Jira ナレッジベース

具体的なパフォーマンス関連のトピックの詳細なガイドラインについては、Jira ナレッジベースのパフォーマンスの問題のトラブルシューティングの記事を参照してください。

Jira エンタープライズ サービス

経験豊富なアトラシアンから直接組織内の Jira の拡大のサポートが必要な場合は、プレミア サポートと技術アカウント管理サービスをご利用ください。

ソリューションパートナー

お住まいの地域のアトラシアン エキスパートも、お客様の環境での Jira の拡大をサポートできます。 

最終更新日: 2019 年 2 月 11 日

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

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