針對本機執行作業進行偵錯遠端快取命中

回報問題 查看原始碼 。 。 。 。 夜間。 。 7.3 。 。 7.2 。 。 7.1 。 。 7.0 。 。 6.5

本頁說明如何根據本機結構定義,調查快取失敗情形

本頁假設您已具備成功建構的建構作業和/或測試 設為使用遠端快取,並想確保 才能有效利用遠端快取

參閱提示,瞭解如何檢查快取命中率,以及如何比較執行作業 針對 Remote Execution 的遠端快取命中進行偵錯。 該指南介紹的所有事項也適用於透過本機進行遠端快取的情形 不過,本機執行作業會帶來一些額外的挑戰。

檢查快取命中率

成功的遠端快取命中會顯示在狀態行中,如下所示: 使用遠端快取命中率 執行

在 Bazel 執行的標準輸出內容中,您會看到 包括:

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

這表示在 7 項嘗試動作中,3 項嘗試獲得了遠端快取命中和 4 項遠端快取 動作沒有快取命中,且使用 linux-sandbox 在本機執行 策略。本機快取命中不會納入這份摘要。如果您將 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 叫用