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 vấn đề Xem nguồn Hằng đêm · 7.3 · 7.2 · 7.1 · 7 · 6,5

Trang này mô tả cách điều tra các thiếu sót trong bộ nhớ đệm trong ngữ cảnh cục bộ thực thi.

Trang này giả định rằng bạn có một bản dựng và/hoặc thử nghiệm tạo thành công cục bộ và được thiết lập để sử dụng chức năng lưu vào bộ nhớ đệm từ xa và bạn muốn đảm bảo 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 vào bộ nhớ đệm và cách so sánh quá trình thực thi nhật ký giữa hai lệnh gọi Bazel, xem Gỡ lỗi truy cập bộ nhớ đệm từ xa để thực thi từ xa. Mọi nội dung 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 thực thi. 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ệ lượt truy cập vào bộ nhớ đệm

Các kết quả thành công trong bộ nhớ đệm từ xa sẽ hiện trên dòng trạng thái, tương tự như Tỷ lệ lượt truy cập trong bộ nhớ đệm có điều khiển từ xa Thực thi.

Trong đầu ra tiêu chuẩn của lần chạy Bazel, bạn sẽ thấy một số dòng mã 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 được cố gắng thực hiện, 3 người có kết quả truy cập bộ nhớ đệm từ xa và 4 các hành động không có lượt truy cập bộ nhớ đệm và đã được thực thi cục bộ bằng linux-sandbox chiến lược. Kết quả tìm kiếm trong bộ nhớ đệm cục bộ không có trong bản tóm tắt này. Nếu bạn nhận được 0 quy trình (hoặc số thấp hơn dự kiến), chạy bazel clean theo sau là lệnh tạo/kiểm thử của bạn.

Khắc phục sự cố về số lần truy cập vào bộ nhớ đệm

Nếu bạn không nhận được tỷ lệ lượt 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 của bạn kết nối 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

    Với chế độ thực thi từ xa, bạn sẽ không thể giao tiếp với điểm cuối từ xa bản dựng của bạn. 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 để tìm các cảnh báo, chẳng hạn như dưới dạng:

       WARNING: Error reading from the remote cache:
    

    hoặc

       WARNING: Error writing to the remote cache:
    

    Theo sau các cảnh báo như vậy sẽ là thông báo lỗi nêu chi tiết về kết nối sự cố sẽ giúp bạn gỡ lỗi: ví dụ: nhập sai tên điểm cuối hoặc thông tin đăng nhập được đặt không chính xác. Tìm và giải quyết mọi lỗi như vậy. Nếu lỗi thông báo bạn thấy không cung cấp cho bạn đủ thông tin, hãy thử thêm --verbose_failures.

  2. Làm theo các bước trong bài viết Khắc phục sự cố về lượt truy cập vào bộ nhớ đệm cho điều khiển từ xa thực thi thành đảm bảo rằng các lệnh gọi Bazel ghi vào 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 bộ nhớ đệm.

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

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

    c. Hãy làm theo các bước tương tự để đảm bảo việc lưu vào bộ nhớ đệm trên máy móc thiết bị, để đảm bảo việc lưu vào bộ nhớ đệm từ lệnh gọi Bazel ghi vào bộ nhớ đệm đến lệnh gọi Bazel đọc bộ nhớ đệm.