Bitbucket Data Center のパフォーマンス テストの例
テスト結果の要約
より良いユーザー管理 - クラスタにノードが追加されると、Bitbucket Data Center はより多くのユーザーに同時にサービスを提供することができます。
より良い Git パフォーマンス - 各ノードがクラスタに追加されると、Git ホスティング操作スケールは特に良くなります。
負荷が増加している場合にリクエスト応答が減少しない - Bitbucket Data Center は単一の Bitbucket Server インスタンスよりも迅速に(応答時間)顧客のリクエストに対してサービスを提供しませんが、負荷が増加した場合も応答性を維持します。
全体的なパフォーマンスの向上 - Bitbucket Data Center の全体的なパフォーマンスへの最大の寄与は計算能力、IO 帯域幅、利用可能なネットワーク接続です。
複数ノードへの Bitbucket Data Center のデプロイメントによって、リクエスト数が増加するにつれてより多くのリクエストに対してサービスを提供できます。
試験方法と仕様
以下のセクションでは、当社のパフォーマンス テストで使用するテスト環境とテスト方法を説明します。
テスト方法
計測値が正確で再現可能であることを保証するため、すべてのテストはベア メタルで行われます。当社のテスト ラボは外部の干渉から完全に分離されており、各テストが実行される前にラボのサービスは専用のテスト フレームワークを使用してサニタイジングおよび再初期化されます。
マルチノード クラスタを行使するのに十分な負荷を生成するため、それぞれ24 CPUと48 GB RAM を搭載した多数の負荷生成サーバーを使用します。さらに、これらの負荷サーバーは SSD ハード ドライブを搭載し、IO 制限を除去しています。テストの実行中、すべてのシステム テレメトリは収集され、中央サーバーに送信されます。中央サーバーではテレメトリが照合され、負荷の生成の実行にアタッチされます。システム テレメトリは R スクリプトと Python スクリプトを使用して解析されます。この情報から、システムの各部が特定の時点で何をしているのかを完全に把握することができます。Java 仮想マシン、Tomcat および Bitbucket 統計は JMX を使用して収集されます。
当社の Bitbucket Data Center デプロイメントは以下のコンポーネントで構築されています。
- Bitbucket Data Center クラスタ ノード: 必要に応じて追加および削除できる異種サーバーの集合です。
- Bitbucket がサポートしている RDBMS: Postgres SQL Server を使用しています。
- NFS をサポートする大容量ストレージ システム: Linux ベースの NFSv3 サーバーを使用しています。
- 受信リクエストを処理ノード全体に分散させるロード バランサ: HAProxy を使用していますが、Apache mod_proxyでもテストしています。
テスト内容
当社では日常的に使用し、システムの全体的なスループットに大きな影響を与える以下の機能領域を集中的にテストしています。
- Git 操作(clone、push、pull、fetch)
- 認証
テスト スクリプトは以下の基準を調整して、目的の使用率プロファイルをエミュレートするように調整されています。
- 作成されたユーザー数および割り当てられたロール数(管理者、レビュアー、投稿者)
- 作成されたリポジトリ数およびプロジェクト数
- 各リポジトリに割り当てられたユーザー数
- 作成するプル リクエスト数
- 編集、削除、または名前を変更されるファイル数
- レビュアー数
- 投稿者数
テストが実行される前に、クラスタにはさまざまなサイズの Git リポジトリがいくつか配備されています。
ハードウェア
すべてのパフォーマンス テストはアトラシアンが管理する隔離された同一のラボで実施されます。
ハードウェア | 説明 | 数はいくつですか? |
---|---|---|
Rackform iServ R304.v3 | CPU: 2 x Intel Xeon E5-2430L, 2.0GHz (6 コア, HT, 15MB キャッシュ, 60W) 32nm | 20 |
Arista DCS-7050 | 4PORT SFP+ REAR-TO-FRONT AIR 2XAC | 1 |
HP ProCurve スイッチ | 1810-48G 48 ポート 10/100/1000 ポート Web マネージ スイッチ | 1 |
使用率プロファイル
当社が使用する一般的な使用率プロファイルは以下の円グラフで示す操作割合で構成されています。一般的な web 操作(ログイン、ランディング ページ、プロジェクトとリポジトリの表示、およびソースの参照)、プル リクエスト(コード レビューおよび共同作業)、およびホスティング操作に均等に配置されています。当社では、これらの比率がソフトウエア開発チームの代表的なコア ワークフローであると考えます。
使用率プロファイルはソフトウェア開発チームの一般的なワークフローの代表です。
結論
Bitbucket Data Center はエキサイティングな新しいプラットフォームであり、Git ホスティングについて並列性と可用性の水準を向上させます。当社でも Bitbucket Data Center を導入することで大きな利点が得られました。Bitbucket はピーク使用時でも応答性を維持し、積極的な CI サーバー負荷は Bitbucket ユーザー インターフェースの応答性に影響を与えません。