継続的インテグレーション パフォーマンスのために Bitbucket Server を拡張する

このページの内容

お困りですか?

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

コミュニティに質問

CI またはその他の自動ツールが変更について Bitbucket Server をポーリングするように設定されている場合、Bitbucket Server インスタンスに大きな負荷がかかる場合があります。たとえば、特定のリポジトリ用にセットアップされたビルドが多数ある CI サーバーを考えます。それぞれのビルドは、変更について Bitbucket Server をポーリングし、変更が検出されると新しいビルドを開始します。CI サーバーが並列および / または連鎖ビルド ステップをサポートしている場合、それぞれのビルドは通常、複数のクローン操作を同じリポジトリで実行します。その結果、変更に関するポーリングが多数発生し、リポジトリのクローンが激増します。

キャッシング

CI によって、Bitbucket Server への呼び出しが何度も繰り返されます。変更に関するポーリングでは通常、90 % の割合で同じレスポンスが得られ、ビルドによって Bitbucket Server に対する同一のクローン呼び出しが多数トリガーされます。CI からの反復的な負荷が発生した場合、いずれの操作もキャッシュの恩恵を大きく受けることができます。


このページの内容

制限事項

  • Git 2.18 では、Bitbucket Server のキャッシュで完全にサポートされる Git ワイヤ プロトコルのバージョン 2 が導入されました。プロトコルの差異のため、バージョン 1 のワイヤ プロトコルを使用する Git クライアントは、バージョン 2 のワイヤ プロトコルを使用するクライアント用に生成されたキャッシュを使用できない点にご注意ください。逆もまた同様です。その結果、バージョン 1 と 2 のワイヤ プロトコルを使用するクライアントが混在している場合、すべてのクライアントが同じバージョンのワイヤ プロトコルを使用している場合と比較すると、キャッシュのためのディスク使用率が高くなり、キャッシュ効率が低下する可能性があります。

考慮事項

Cache data is stored on disk for clone operations for a configurable period of time. Since large instances can potentially consume an entire disk the SCM Cache Plugin monitors remaining disk space and is automatically disabled when the configured minimum free disk space is reached.

利用可能なシステム プロパティの詳細については、「Bitbucket Server の設定プロパティ」を参照してください。

構成

REST エンドポイント (すべてではなく一部の設定) または <BITBUCKET_HOME>/bitbucket.properties でシステム プロパティを使用して、Bitbucket Server の SCM Cache Plugin を設定できます。REST で構成された設定は、 bitbucket.properties での設定より手前のものとみなされます。

REST API

メソッドURL説明
GET
/rest/scm-cache/latest/config/protocols
キャッシュが有効化されているプロトコルを取得します。
PUT
/rest/scm-cache/latest/config/protocols/{protocol}
プロトコル (HTTP または SSH) のホスティング リクエストのキャッシングを有効化します。
削除
/rest/scm-cache/latest/config/protocols/{protocol}
プロトコル (HTTP または SSH) のホスティング リクエストのキャッシングを無効化します。
GET
/rest/scm-cache/latest/config/upload-pack/enabled
クローン キャッシュが有効化されているか (true) 無効化されているか (false) を取得します。
PUT
/rest/scm-cache/latest/config/upload-pack/enabled/{status}
クローン キャッシュを有効化 (status = true) または無効化 (status = false) します。
GET
/rest/scm-cache/latest/config/upload-pack/ttl
クローン キャッシュの有効期限を秒単位で取得します。
PUT
/rest/scm-cache/latest/config/upload-pack/ttl/{expiryInSec}
クローン キャッシュの有効期限を秒単位で設定します。
GET
/rest/scm-cache/latest/caches
現在のキャッシュに関する情報 (サイズ、キャッシュのヒット数、ミス数など) を取得します。
削除
/rest/scm-cache/latest/caches
すべてのキャッシュをクリアします。
GET
/rest/scm-cache/latest/caches/{projectKey}/{repoSlug}
projectKey および repoSlug で識別されるリポジトリのキャッシュに関する情報 (サイズ、キャッシュのヒット数、ミス数など) を取得します。
削除
/rest/scm-cache/latest/caches/{projectKey}/{repoSlug}

projectKey および repoSlug で識別されるリポジトリのキャッシュをクリアします。

最終更新日 2021 年 7 月 26 日

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

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