Trang này mô tả cách điều tra các trường hợp không tìm thấy trong 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ài kiểm thử được xây dựng 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 hiệu quả.
Để biết các mẹo về cách kiểm tra tỷ lệ tìm thấy trong 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 Gỡ lỗi các trường hợp tìm thấy trong bộ nhớ đệm từ xa để thực thi từ xa. Mọi nội dung được trình bày trong hướng dẫn đó cũng áp dụng cho tính năng lưu vào bộ nhớ đệm từ xa khi thực thi cục bộ. Tuy nhiên, việc thực thi cục bộ sẽ gặp phải một số thách thức khác.
Kiểm tra tỷ lệ tìm thấy trong bộ nhớ đệm
Các trường hợp tìm thấy trong bộ nhớ đệm từ xa thành công sẽ xuất hiện trong dòng trạng thái, tương tự như tỷ lệ tìm thấy trong bộ nhớ đệm khi thực thi từ xa.
Trong kết quả đầu ra tiêu chuẩn của quá trình chạy Bazel, bạn sẽ thấy nội dung tương tự như sau:
INFO: 7 processes: 3 remote cache hit, 4 linux-sandbox.
Điều này có nghĩa là trong số 7 thao tác đã thử, 3 thao tác tìm thấy trong bộ nhớ đệm từ xa và 4 thao tác không tìm thấy trong bộ nhớ đệm và được thực thi cục bộ bằng chiến lược linux-sandbox. Các trường hợp tìm thấy trong bộ nhớ đệm cục bộ không được đưa vào bản tóm tắt này. Nếu bạn 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, sau đó chạy lệnh kiểm thử/bản dựng.
Khắc phục sự cố tìm thấy trong bộ nhớ đệm
Nếu bạn không nhận được tỷ lệ tìm thấy trong bộ nhớ đệm như mong đợi, 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 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.
Kiểm tra kết quả đầu ra để biết thông tin cảnh báo
Khi thực thi từ xa, việc không giao tiếp được với điểm cuối từ xa sẽ khiến bản dựng của bạn không thành công. 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 kết quả đầu ra của lệnh gọi Bazel để biết thông tin 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:Sau những cảnh báo như vậy sẽ là thông báo lỗi nêu chi tiết vấn đề về kết nối giúp bạn gỡ lỗi: ví dụ: tên điểm cuối bị nhập sai hoặc thông tin đăng nhập được thiết lập không chính xác. Tìm và giải quyết 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.Làm theo các bước trong phần Khắc phục sự cố tìm thấy trong bộ nhớ đệm khi thực thi từ xa để đảm bảo rằng các lệnh gọi Bazel ghi vào bộ nhớ đệm có thể tìm thấy trong bộ nhớ đệm trên cùng một máy và trên các máy.
Đảm bảo các lệnh gọi Bazel đọc từ bộ nhớ đệm có thể tìm thấy trong bộ nhớ đệm.
a. Vì các lệnh gọi Bazel đọc từ bộ nhớ đệm sẽ có một bộ dòng lệnh khác, nên bạn cần cẩn thận hơn để đảm bảo rằng các lệnh 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ả đầu ra.b. Đảm bảo các lệnh gọi Bazel đọc từ bộ nhớ đệm xây dựng cùng các mục tiêu với các lệnh gọi Bazel ghi vào bộ nhớ đệm.
c. 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 vào bộ nhớ đệm đến lệnh gọi Bazel đọc từ bộ nhớ đệm.