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