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

このページの内容

お困りですか?

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

コミュニティに質問

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

キャッシング

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

Bitbucket Server 2.5, and later versions, ship with the SCM Cache Plugin already bundled. The plugin is enabled by default, but note that ref advertisement is disabled by default – see the 'Limitations' section below. The plugin is also available from the Atlassian Marketplace.

このページの内容:

制限事項

  • キャッシュは "ref advertisement" (変更のポーリング)、クローン、およびシャロー クローン リクエストにのみ適用できます。フェッチ / プル操作はキャッシュされませんが、これらの操作は "ref advertisement" キャッシュの恩恵を受けます。
  • As a precaution, ref advertisement caching is disabled by default. The openness of the plugin system means that plugins (or manually installed git hooks) could be updating refs in repository without the caching plugin detecting these changes. The result would be a stale refs cache and failing clone/fetch operations. However, if you know that there are no plugins or git hooks installed that make changes to the repository directly, you can enable the ref advertisement caching using the system properties listed in the Configuration section below. Note that as an additional precaution, the ref advertisement caches are configured to automatically expire after a minute.

考慮事項

ref advertisements 操作の場合もクローン操作の場合も、キャッシュ データはディスクに保存されます。保存期間は設定できます。大きなインスタンスはディスク全体を潜在的に消費する可能性があるため、SCM Cache Plugin は残りのディスク容量を監視し、設定された最低ディスク空き容量に達すると自動的に無効化されます。

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

Enabling and disabling caching

Enable the SCM Cache Plugin from the admin area in Bitbucket Server. Click Manage Add-ons (under 'Add-Ons') and filter for system add-ons. Click SCM Cache Plugin for Bitbucket Server and then either Enable or Disable.

構成

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/refs/enabled
ref advertisement キャッシュが有効化されているか (true) 無効化されているか (false) を取得します。
PUT
/rest/scm-cache/latest/config/refs/enabled/{status}

ref advertisement キャッシュを有効化 (status = true) または無効化 (status = false) します。

GET
/rest/scm-cache/latest/config/refs/ttl
ref advertisement キャッシュの有効期限を秒単位で取得します。
PUT
/rest/scm-cache/latest/config/refs/ttl/{expiryInSec}
ref advertisement キャッシュの有効期限を秒単位で設定します。
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 で識別されるリポジトリのキャッシュをクリアします。

最終更新日 2016 年 4 月 11 日

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

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