หน้านี้จะอธิบายวิธีตรวจสอบการพลาดแคชในบริบทของการดำเนินการในเครื่อง
หน้านี้จะถือว่าคุณมีบิลด์และ/หรือการทดสอบที่สร้างขึ้นในเครื่องได้สำเร็จและตั้งค่าให้ใช้การแคชระยะไกล และคุณต้องการตรวจสอบว่ามีการใช้แคชระยะไกลอย่างมีประสิทธิภาพ
ดูเคล็ดลับเกี่ยวกับวิธีตรวจสอบอัตราการพบแคชและวิธีเปรียบเทียบบันทึกการดำเนินการระหว่างการเรียกใช้ 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 ที่เขียนแคช