Build Cache - 基本設定と構成

この機能は、IncredibuildのEnterprise PlanとBusiness Planでのみ利用可能です。

Build Cache Clusterの作成方法

Build Cache Clusterは複数のAgentノードで構成されます。複数のイニシエータエージェントを Build Cache Clusterに接続できます。クラスタに接続されたイニシエータエージェントはすべて、クラスタにファイルを送信し、クラスタ上のすべてのファイルを読み込むことができるため、開発者のチームはクラスタ上でBuild Cacheを共有できます。

注意:
  • Build Cache Clusterからのノードの追加または削除は比較的簡単ですが、まずキャッシュヒットの数が減少します。Build Cache Cluster設定が変更された後に最初のビルドにおけるヒットとなる可能性があるビルドタスクもあれば、再キャッシュが必要となるビルドタスクもあります。
  1. Coordinator > Agent List にアクセスしてください。

  2. Actions > Build Cache Configuration > Cache Clusterをクリックします。

  3. Manage Cache Clustersをクリックします。

  4. Create Clusterをクリックします。

  5. クラスタのNameを入力します。

  6. クラスタにノードを追加するには、Agentリストで1つ以上のエージェントを選択します。

  7. Actions > Build Cache Configuration > Cache Clusterをクリックします。

  8. 必要なクラスタを選択します。

  9. Addをクリックします。割り当てられたクラスタはCache Cluster列に表示されます。

    注意:これらのBuild Cacheエンドポイントのいずれかを使用しているイニシエータエージェントは、このクラスタを使用するようになります。

Build Cacheの有効化と設定方法

  1. イニシエータエージェントで Build Cache を有効化する

    1. フローティング イニシエータを使用しており、デフォルトですべてのイニシエータでBuild Cacheを有効化する場合は、[Coordinator Manager] >[Settings] >[Agents] に進み、[Automatic Build Cache Allocation] にチェックを入れます。

    2. 固定イニシエータエージェントを使用している場合、またはどのフローティング エージェントに Build Cache を持たせるかをコントロールする場合は以下を実行します。

      1. [Coordinator Manager]>[ Agent List] にアクセスし、必要なイニシエータを選択します。

      2. [Actions] >[Enable Build Cache] >[Allocate Build Cache] をクリックします。このオプションが表示されない場合は、エージェントに イニシエータ ライセンスがあるか確認してください。

  2. それぞれのイニシエータエージェント マシン(一緒に構成することも、個別に構成することも可能)で、ローカルキャッシュおよび/またはリモートキャッシュのどちらを使用するかを定義します。

    1. [Agent List]で、必要な[Initiator]を選択します。

    2. [Actions] >[Enable Build Cache] をクリックし、Local CacheShared Cache、またはその両方を選択してください。共有キャッシュを選択した場合、クラスタまたはシングルエンドポイントのどちらを使用するかを選択し、クラスタを選択するか(割り当てられたノードがあるクラスタのみが表示されます)、共有キャッシュがあるマシンの場所を指定します。

      選択したBuild CacheがBuild Cacheエンドポイント列に表示されます。

  3. 「Build Cache」がふくまれる[Initiator]をすべて選択し、[Actions] > [Build Cache Configuration] をクリックして、選択したマシンに存在するキャッシュのサイズと場所を設定します。サイズ制限は、このファイルキャッシュに寄与するすべてのビルドの出力の2~3倍のサイズで設定されるべきですが、要件は環境に応じて異なる場合があります。詳しくは次をご覧ください。

特定のビルドやプロジェクト用にビルドキャッシュ設定をカスタマイズする

特定のビルドのBuild Cache動作を上書きする

クライアントは、エージェント設定でデフォルトで使用するエンドポイントを定義しますが、特定のビルドのビルドコマンドで上書きすることができます。Make & Build ツール用のBuildConsoleVisual Studio用BuildConsoleおよび DevTools用 IBConsole CLI で、Build Cacheの動作を上書きするためのフラグが定義されています。

例えば、BuildConsoleコマンドを使用してMake & Build ツールのIncredibuildを実行し、リモートキャッシュを使用する場合は、「/buildcacheremoteserver=[ip address:port」フラグを追加します。

これは、ビルドコマンドがCIスクリプト全体の一部であるような、CIビルドの場合に特に便利です。

特定のプロジェクトにBuild Cacheのビヘイビアを設定する

また、ビルド設定ファイルを使用して、特定のプロジェクトに合わせてビルド キャッシュのビヘイビアを設定することもできます。特定のプロジェクトの設定を含む構成ファイルを作成し、プロジェクトのソースコードと一緒に保存することができます。これにより、複数のエージェントやCIマシンで同じ設定(特定の共有キャッシュなど)を一貫して使用することができます。詳細については、構成ファイルを使用したビルドごとの設定変更 を参照してください。

使用例とベストプラクティス

開発者用マシン -在宅またはオフィスでの作業

ほとんどのマシンでは、ローカルキャッシュとリモートキャッシュの両方を有効にすることをお勧めします。これは、これらのマシンが永続マシン(ラップトップ、デスクトップ、または永続VM)であり、リモートキャッシュのみを使用してそのキャッシュに書き込んでいる他のマシン(通常はCIサーバー)があることを前提としています。共有キャッシュを独占的に使用して書き込みを行うマシンがない場合、開発者マシンはローカルキャッシュのみを使用するべきです。

エージェント上でローカルキャッシュとリモートキャッシュの両方を有効にした場合、そのエージェントはローカルキャッシュにのみ寄与することができます。

ビルドが実行されると、まずローカル キャッシュがチェックされます。ヒットするとキャッシュが使用されます。そうでない場合、Incredibuildはリモートキャッシュをチェックします。ヒットした場合はそのキャッシュを使用、もしくは、ローカル キャッシュを更新して、今後の実行でローカル キャッシュを使用するようにすることでネットワーク トラフィックを削減します。アップロード帯域幅が少ないため、在宅勤務のユーザーが作業する場合は特に便利です。ヒットししない場合、ビルドが実行され、情報がローカルキャッシュに追加されます。

CIマシン

CIビルドは通常、「真実のソース」と考えることがでできます。つまり、CIビルドはあんていして織り、信頼することができ、他のCIビルドや開発者によって共有されているコードが含まれています。ほとんどの場合、CIビルドの一部となるように差し込まれたコードは、変更頻度が少なくなります。その結果、オブジェクトファイルなど、そのコンパイルされた成果物は他の人にも使用される可能性が高くなり、ビルドキャッシュの効率が向上して、全てのユーザーにとってビルドの効率が上がります。CIユースケースにマシンを使用する場合は、リモート(共有)キャッシュのみを使用することを推奨します。その後、マシンはリモート キャッシュへの読み鳥及び書き込みの両方を実行します。従って、多くのユースケースで行われるように、CIマシンが崩壊したとしても、コンテンツが利用可能であることが保証されます。また、このキャッシュを在宅やオフィスで働く開発者と共有することも可能です。

リモート(共有)キャッシュ エンドポイント

リモートキャッシュをホストするエンドポイントでは、パフォーマンスを最大化するために以下の推奨事項を使用してください。

  • Incredibuild をエージェントにインストールしますが、エージェントにライセンスを割り当てません。従って、ビルドを支援または開始しないようにします。

  • このマシンでは他のプログラムを実行しないでください。

  • Agentの説明を追加して、Agentをリモートキャッシュとして明確に識別します。

Build Cacheのサイズとストレージの管理

キャッシュは、このファイルキャッシュに寄与するすべてのビルドの結果(オブジェクト、プリコンパイルされたヘッダー、ライブラリー、実行可能ファイル)を2-3個保持するのに十分な大きさである必要があります。これらの要件は、使用されている環境によって異なる場合があります。

プロジェクトのビルド結果で必要な容量は、ビルド出力フォルダのサイズをチェックすることで確認することができます。

キャッシュを保存しているファイルシステムに、キャッシュがフルサイズになるのに十分な空き容量があるか確認してください。Build Cacheは、ファイルシステムの空き容量が3%未満になると、キャッシュの保存を停止します。

Build Cacheが使用可能になると、ビルドモニターの出力タブやコマンドラインで表示される出力において、それぞれのビルドでどれだけのキャッシュが使用されたかを確認することができます。

ファイルキャッシュのクリーニング

重複ファイルの削除や自動クリーンアップなどの、さまざまな方法でファイルキャッシュを最適化します。ファイルキャッシュの使用量が95%になると、85%の容量になるまでコンテンツの一部が削除され、自動的にクリーンアップされます。

Build CacheエンドポイントのAgent 設定では、手動でキャッシュを削除することも可能です。

キャッシュの使用量は、コマンドラインで表示される出力と同様に、ビルドモニター の出力タブで確認することができます。