หน้านี้จะอธิบายวิธีตรวจสอบการพลาดแคชในบริบทของการดำเนินการในเครื่อง
หน้านี้จะถือว่าคุณมีการสร้างและ/หรือการทดสอบที่สร้างขึ้นในเครื่องได้สำเร็จและตั้งค่าให้ใช้การแคชระยะไกล และคุณต้องการตรวจสอบว่ามีการใช้แคชระยะไกลอย่างมีประสิทธิภาพ
ดูเคล็ดลับเกี่ยวกับวิธีตรวจสอบอัตราการเข้าถึงแคชและวิธีเปรียบเทียบบันทึกการดำเนินการ ระหว่างการเรียกใช้ Bazel 2 ครั้งได้ที่ การแก้ปัญหาการเข้าถึงแคชระยะไกลสำหรับการดำเนินการระยะไกล ทุกสิ่งที่แสดงในคำแนะนำนั้นใช้กับการแคชระยะไกลด้วยการดำเนินการในเครื่องด้วย อย่างไรก็ตาม การดำเนินการในเครื่องมีข้อจำกัดเพิ่มเติมบางอย่าง
การตรวจสอบอัตราการเข้าถึงแคช
การเข้าถึงแคชระยะไกลที่สำเร็จจะแสดงในบรรทัดสถานะ ซึ่งคล้ายกับ อัตราการเข้าถึงแคชกับการดำเนินการระยะไกล
ในเอาต์พุตมาตรฐานของการเรียกใช้ Bazel คุณจะเห็นข้อมูลต่อไปนี้
INFO: 7 processes: 3 remote cache hit, 4 linux-sandbox.
ซึ่งหมายความว่าจากการดำเนินการ 7 ครั้ง มี 3 ครั้งที่เข้าถึงแคชระยะไกลได้ และ 4 ครั้งที่เข้าถึงแคชไม่ได้และดำเนินการในเครื่องโดยใช้กลยุทธ์ linux-sandbox การเข้าถึงแคชในเครื่องจะไม่รวมอยู่ในข้อมูลสรุปนี้ หากคุณได้รับกระบวนการ 0 รายการ (หรือจำนวนที่ต่ำกว่าที่คาดไว้) ให้เรียกใช้ bazel clean ตามด้วยคำสั่งสร้าง/ทดสอบ
การแก้ปัญหาการเข้าถึงแคช
หากอัตราการเข้าถึงแคชไม่เป็นไปตามที่คาดไว้ ให้ทำดังนี้
ตรวจสอบว่ามีการสื่อสารกับเครื่องปลายทางระยะไกลได้สำเร็จ
ทำตามขั้นตอนในส่วนนี้เพื่อให้แน่ใจว่าการสร้างสื่อสารกับแคชระยะไกลได้สำเร็จ
ตรวจสอบเอาต์พุตเพื่อดูคำเตือน
เมื่อใช้การดำเนินการระยะไกล หากไม่สามารถสื่อสารกับเครื่องปลายทางระยะไกลได้ การสร้างจะล้มเหลว ในทางกลับกัน การสร้างในเครื่องที่แคชได้จะไม่ล้มเหลวหากแคชไม่ได้ ตรวจสอบเอาต์พุตของการเรียกใช้ Bazel เพื่อดูคำเตือน เช่น
WARNING: Error reading from the remote cache:หรือ
WARNING: Error writing to the remote cache:คำเตือนดังกล่าวจะตามด้วยข้อความแสดงข้อผิดพลาดที่ระบุรายละเอียดของปัญหาการเชื่อมต่อ ซึ่งจะช่วยคุณในการแก้ปัญหา เช่น ชื่อเครื่องปลายทางที่พิมพ์ผิดหรือข้อมูลเข้าสู่ระบบที่ตั้งค่าไม่ถูกต้อง ค้นหาและแก้ไขข้อผิดพลาดดังกล่าว หากข้อความแสดงข้อผิดพลาดที่คุณเห็นมีข้อมูลไม่เพียงพอ ให้ลองเพิ่ม
--verbose_failuresทำตามขั้นตอนจาก หัวข้อการแก้ปัญหาการเข้าถึงแคชสำหรับการดำเนินการระยะไกล เพื่อ ให้แน่ใจว่าการเรียกใช้ Bazel ที่เขียนแคชสามารถเข้าถึงแคช ในเครื่องเดียวกันและข้ามเครื่องได้
ตรวจสอบว่าการเรียกใช้ Bazel ที่อ่านแคชสามารถเข้าถึงแคชได้
ก. เนื่องจากการเรียกใช้ Bazel ที่อ่านแคชจะมีการตั้งค่าบรรทัดคำสั่งที่แตกต่างกัน โปรดระมัดระวังเป็นพิเศษเพื่อให้แน่ใจว่ามีการตั้งค่าอย่างถูกต้องเพื่อ สื่อสารกับแคชระยะไกล ตรวจสอบว่าได้ตั้งค่าแฟล็ก
--remote_cacheแล้ว และไม่มีคำเตือนในเอาต์พุตข. ตรวจสอบว่าการเรียกใช้ Bazel ที่อ่านแคชสร้างเป้าหมายเดียวกันกับการเรียกใช้ Bazel ที่เขียนแคช