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