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

Báo cáo sự cố Xem nguồn

Trang này mô tả cách điều tra tình trạng bỏ lỡ 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 thử nghiệm được tạo thành công cục bộ và được thiết lập để sử dụng tính năng lưu vào bộ nhớ đệm từ xa, đồng thời bạn muốn đảm bảo rằng bộ nhớ đệm từ xa đang được sử dụng một cách hiệu quả.

Để biết các mẹo về cách kiểm tra tỷ lệ truy cập vào 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 số lần truy cập vào bộ nhớ đệm từ xa để thực thi từ xa. Mọi thứ được trình bày trong hướng dẫn đó cũng áp dụng cho việc lưu vào bộ nhớ đệm từ xa bằng quy trình thực thi cục bộ. Tuy nhiên, việc thực thi cục bộ cũng đặt ra một số thách thức khác.

Kiểm tra tỷ lệ truy cập vào bộ nhớ đệm của bạn

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

Trong đầu ra tiêu chuẩn của lần chạy Bazel, bạn sẽ thấy 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ó 3 hành động nhận đượ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. Số lượt truy cập vào bộ nhớ đệm cục bộ không được bao gồm trong bản tóm tắt này. Nếu bạn không nhận được quy trình nào (hoặc một số thấp hơn dự kiến), hãy chạy bazel clean rồi chạy lệnh tạo/kiểm thử.

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

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

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

Để đảm bảo bản dựng 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 để xem có cảnh báo không

    Với thực thi từ xa, việc không trao đổi được với điểm cuối từ xa sẽ khiến bản dựng của bạn không hoạt động được. Mặt khác, một 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 kết quả của lệnh gọi Bazel để xem 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ẽ đi kèm với một thông báo lỗi nêu chi tiết sự cố kết nối có thể giúp bạn gỡ lỗi: ví dụ: nhập sai tên điểm cuối hoặc thông tin xác thực được đặt 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 trong phần Khắc phục sự cố về lượt truy cập vào bộ nhớ đệm để 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 lượt truy cập vào bộ nhớ đệm trên cùng một máy và trên nhiều máy.

  3. Đảm bảo các lệnh gọi Bazel đọc bộ nhớ đệm 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 một dòng lệnh khác, hãy chú ý hơn nữa để đảm bảo chúng được thiết lập đúng cách để giao tiếp với bộ nhớ đệm từ xa. Hãy đảm bảo cờ --remote_cache được đặt và không có cảnh báo nào trong kết quả.

    b. Đảm bảo lệnh gọi Bazel đọc bộ nhớ đệm tạo mục tiêu giống như lệnh gọi Bazel ghi bộ nhớ đệm.

    c. Hãy làm theo 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.