ローカル実行のためのリモート キャッシュ ヒットのデバッグ

問題を報告 ソースを表示 Nightly · 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

このページでは、ローカル実行のコンテキストでキャッシュミスを調査する方法について説明します。

このページでは、正常にビルドされたビルドやテストがあることを前提としています。 リモート キャッシュを使用するように設定されており、 リモートキャッシュが有効に利用されていることがわかります。

キャッシュ ヒット率を確認する方法と実行結果の比較方法に関するヒント 2 つの Bazel 呼び出しの間のログを確認できます。詳しくは、 リモート実行のリモート キャッシュ ヒットのデバッグ このガイドで説明するすべての内容は、ローカル キャッシュとリモート キャッシュにも当てはまります。 実行されます。ただし、ローカル実行にはいくつかの追加の課題があります。

キャッシュ ヒット率の確認

リモート キャッシュ ヒットが成功した場合は、 Remote でのキャッシュ ヒット率 実行

Bazel 実行の標準出力には、次のような内容が表示されます。

   INFO: 7 processes: 3 remote cache hit, 4 linux-sandbox.

つまり、試行された 7 つのアクションのうち 3 件がリモート キャッシュ ヒット、4 件がリモート キャッシュ ヒットに アクションにキャッシュ ヒットがなく、linux-sandbox を使用してローカルで実行された 説明します。ローカル キャッシュのヒットはこの概要には含まれません。新しい P-MAX キャンペーンを 0 プロセス(または想定よりも小さい数)の場合は、bazel clean を実行してから、 使用します。

キャッシュヒットのトラブルシューティング

想定どおりのキャッシュ ヒット率が得られない場合は、次の操作を行います。

リモート エンドポイントとの通信が正常に行われるようにする

ビルドがリモート キャッシュと正常に通信していることを確認するには、次の手順を実施します。 見てみましょう。

  1. 出力に警告がないか確認する

    リモート実行では、リモート エンドポイントとの通信に失敗するとビルドが失敗します。一方、キャッシュに保存できるローカルビルドは、キャッシュに保存できない場合でも失敗しません。Bazel 呼び出しの出力で、次のような警告がないか確認します。 例:

       WARNING: Error reading from the remote cache:
    

    または

       WARNING: Error writing to the remote cache:
    

    このような警告の後に、接続の詳細を示すエラー メッセージが表示されます。 たとえば、入力ミスのあるエンドポイント名や 認証情報が誤って設定されています。このようなエラーを見つけて対処します。エラーが 十分な情報が得られない場合は、 --verbose_failures

  2. リモートのキャッシュ ヒットのトラブルシューティングの手順に沿って操作します。 実行を キャッシュ書き込みの Bazel 呼び出しでキャッシュ ヒットを取得できるようにする 同じマシン上で複数のマシン間で 実行されています

  3. キャッシュ読み取りの Bazel 呼び出しでキャッシュヒットを取得できるようにします。

    a. キャッシュ読み取りの Bazel 呼び出しではコマンドライン セットが異なるため、 適切に構成されていることを リモートキャッシュと通信します--remote_cache フラグが設定され、出力に警告がないことを確認します。

    b. キャッシュ読み取りの Bazel 呼び出しが、 Bazel 呼び出しのキャッシュ書き込み。

    c. 同じ手順に沿って、複数のサービス間でキャッシュを マシン キャッシュ書き込みの Bazel 呼び出しから Bazel 呼び出し。