Gỡ lỗi truy cập bộ nhớ đệm từ xa để thực thi cục bộ

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Báo cáo sự cố Xem nguồn

Trang này mô tả cách điều tra các trường hợp thiếu bộ nhớ đệm trong bối cảnh thực thi cục bộ.

Trang này giả định rằng bạn có một bản dựng và/hoặc bản thử nghiệm được tạo cục bộ thành công và được thiết lập để sử dụng bộ nhớ đệm từ xa và bạn muốn đảm bảo rằng bộ nhớ đệm từ xa đang được sử dụng hiệu quả.

Để biết các mẹo về cách kiểm tra tỷ lệ truy cập bộ nhớ đệm và cách so sánh nhật ký thực thi giữa hai lệnh gọi Bazel, hãy xem phần Gỡ lỗi lượt truy cập vào bộ nhớ đệm từ xa để thực thi từ xa. Mọi hướng dẫn trong hướng dẫn này cũng áp dụng cho việc lưu từ xa vào bộ nhớ đệm từ quá trình thực thi cục bộ. Tuy nhiên, quá trình thực thi cục bộ sẽ gây ra một số khó khăn hơn.

Đang kiểm tra tỷ lệ truy cập vào bộ nhớ đệm

Các lượt truy cập thành công vào bộ nhớ đệm từ xa sẽ xuất hiện trong dòng trạng thái, tương tự như Tỷ lệ truy cập bộ nhớ đệm từ xa khi thực thi từ xa.

Trong đầu ra tiêu chuẩn của bài chạy Bazel, bạn sẽ thấy nội dung như sau:

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

Điều này có nghĩa là trong số 7 hành động đã thực hiện, 3 hành động có lượt truy cập vào bộ nhớ đệm từ xa và 4 hành động không có lượt truy cập vào bộ nhớ đệm và được thực thi cục bộ bằng chiến lược linux-sandbox. Bản tóm tắt này không bao gồm các lượt truy cập vào bộ nhớ đệm trên máy. Nếu bạn đang nhận được 0 quy trình (hoặc một số thấp hơn dự kiến), hãy chạy bazel clean theo sau là lệnh tạo/kiểm thử.

Khắc phục sự cố về lượt truy cập bộ nhớ đệm

Nếu bạn không nhận được tỷ lệ truy cập vào bộ nhớ đệm như mong đợi, hãy làm như sau:

Đảm bảo giao tiếp thành công nhờ điểm cuối từ xa

Để đảm bảo bản dựng của bạn giao tiếp thành công với bộ nhớ đệm từ xa, hãy làm theo các bước trong phần này.

  1. Kiểm tra kết quả của bạn để tìm cảnh báo

    Khi thực thi từ xa, bạn sẽ không thể trao đổi với điểm cuối từ xa. Mặt khác, bản dựng cục bộ có thể lưu vào bộ nhớ đệm sẽ không bị lỗi nếu không thể lưu vào bộ nhớ đệm. Kiểm tra đầu ra của lệnh gọi Bazel để biết các cảnh báo, chẳng hạn như:

       WARNING: Error reading from the remote cache:
    

    hoặc

       WARNING: Error writing to the remote cache:
    

    Những cảnh báo như vậy sẽ xuất hiện kèm theo thông báo lỗi mô tả chi tiết về sự cố kết nối sẽ giúp bạn gỡ lỗi: chẳng hạn như tên điểm cuối bị nhập sai hoặc đặt thông tin xác thực không chính xác. Tìm và xử lý mọi lỗi như vậy. Nếu thông báo lỗi bạn thấy không cung cấp đủ thông tin, hãy thử thêm --verbose_failures.

  2. Làm theo các bước từ Khắc phục sự cố lượt truy cập bộ nhớ đệm cho quá trình thực thi từ xa để đảm bảo rằng các lệnh gọi Bazel ghi bộ nhớ đệm có thể nhận được các lượt truy cập vào bộ nhớ đệm trên cùng một máy và trên các máy.

  3. Đảm bảo rằng các lệnh gọi Bazel đọc bộ nhớ đệm của bạn có thể nhận được lượt truy cập vào bộ nhớ đệm.

    a. Vì các lệnh gọi Bazel đọc bộ nhớ đệm sẽ được thiết lập bằng dòng lệnh khác, hãy chú ý bổ sung để đảm bảo rằng các lệnh gọi này được thiết lập đúng cách để giao tiếp với bộ nhớ đệm từ xa. Đảm bảo cờ --remote_cache được đặt và không có cảnh báo nào trong kết quả.

    b. Hãy đảm bảo rằng các lệnh gọi Bazel đọc bộ nhớ đệm sẽ xây dựng các mục tiêu giống như các lệnh gọi Bazel đang lưu vào bộ nhớ đệm.

    c. Hãy thực hiện các bước tương tự như để đảm bảo lưu vào bộ nhớ đệm trên các máy, để đảm bảo lưu vào bộ nhớ đệm từ lệnh gọi Bazel ghi bộ nhớ đệm đến lệnh gọi Bazel đọc bộ nhớ đệm của bạn.