การแก้ไขข้อบกพร่องของ Hit แคชระยะไกลสำหรับการดำเนินการในเครื่อง

หน้านี้อธิบายวิธีตรวจสอบแคชที่ไม่พบในบริบทของการดำเนินการในเครื่อง

หน้านี้ถือว่าคุณมีบิลด์และ/หรือการทดสอบที่สร้างสำเร็จ ในเครื่องและตั้งค่าให้ใช้แคชระยะไกล และคุณต้องการตรวจสอบ ว่าแคชระยะไกลได้รับการใช้งานอย่างมีประสิทธิภาพ

ดูเคล็ดลับเกี่ยวกับวิธีตรวจสอบอัตราการเข้าชมแคชและวิธีเปรียบเทียบบันทึกการดำเนินการระหว่างการเรียกใช้ Bazel 2 ครั้งได้ที่การแก้ไขข้อบกพร่องของการเข้าชมแคชระยะไกลสำหรับการดำเนินการระยะไกล ทุกอย่างที่นำเสนอในคู่มือนั้นยังใช้กับการแคชระยะไกลที่มีการดำเนินการในเครื่องด้วย อย่างไรก็ตาม การดำเนินการในพื้นที่อาจมีความท้าทายเพิ่มเติม

การตรวจสอบอัตราการเข้าชมแคช

การเข้าถึงแคชระยะไกลที่สำเร็จจะแสดงในบรรทัดสถานะ ซึ่งคล้ายกับอัตราการเข้าถึงแคชด้วยการดำเนินการระยะไกล

ในเอาต์พุตมาตรฐานของการเรียกใช้ Bazel คุณจะเห็นข้อความต่อไปนี้

   INFO: 7 processes: 3 remote cache hit, 4 linux-sandbox.

ซึ่งหมายความว่าจากการดำเนินการที่พยายาม 7 ครั้ง มี 3 ครั้งที่แคชระยะไกลทำงาน และ 4 ครั้งที่แคชไม่ทำงานและดำเนินการในเครื่องโดยใช้กลยุทธ์ linux-sandbox การเข้าชมแคชในเครื่องจะไม่รวมอยู่ในข้อมูลสรุปนี้ หากคุณได้รับ 0 กระบวนการ (หรือตัวเลขที่ต่ำกว่าที่คาดไว้) ให้เรียกใช้ bazel clean ตามด้วย คำสั่งบิลด์/ทดสอบ

การแก้ปัญหาการเข้าชมแคช

หากอัตราการเข้าชมแคชไม่เป็นไปตามที่คาดไว้ ให้ทำดังนี้

ตรวจสอบว่าการสื่อสารกับอุปกรณ์ปลายทางระยะไกลสำเร็จ

หากต้องการให้บิลด์สื่อสารกับแคชระยะไกลได้สำเร็จ ให้ทำตามขั้นตอนในส่วนนี้

  1. ตรวจสอบเอาต์พุตเพื่อดูคำเตือน

    การดำเนินการจากระยะไกลจะทำให้การสร้างไม่สำเร็จหากไม่สามารถสื่อสารกับอุปกรณ์ปลายทางระยะไกลได้ ในทางกลับกัน บิลด์ในเครื่องที่แคชได้จะไม่ล้มเหลวหากแคชไม่ได้ ตรวจสอบเอาต์พุตของการเรียกใช้ Bazel เพื่อหาคำเตือน เช่น

       WARNING: Error reading from the remote cache:
    

    หรือ

       WARNING: Error writing to the remote cache:
    

    คำเตือนดังกล่าวจะตามด้วยข้อความแสดงข้อผิดพลาดที่ให้รายละเอียดเกี่ยวกับปัญหาการเชื่อมต่อ ซึ่งจะช่วยคุณแก้ไขข้อบกพร่องได้ เช่น ชื่อปลายทางที่พิมพ์ผิดหรือข้อมูลเข้าสู่ระบบที่ตั้งค่าไม่ถูกต้อง ค้นหาและแก้ไขข้อผิดพลาดดังกล่าว หากข้อความแสดงข้อผิดพลาดที่คุณเห็นมีข้อมูลไม่เพียงพอ ให้ลองเพิ่ม --verbose_failures

  2. ทำตามขั้นตอนจากการแก้ปัญหาการเข้าถึงแคชสำหรับการดำเนินการจากระยะไกลเพื่อให้แน่ใจว่าการเรียกใช้ Bazel ที่เขียนแคชจะเข้าถึงแคชได้ในเครื่องเดียวกันและในเครื่องต่างๆ

  3. ตรวจสอบว่าการเรียกใช้ Bazel ที่อ่านแคชจะได้รับแคชฮิต

    ก. เนื่องจากการเรียกใช้ Bazel ที่อ่านแคชจะมีชุดบรรทัดคำสั่งที่แตกต่างกัน จึงควรระมัดระวังเป็นพิเศษเพื่อให้แน่ใจว่าได้ตั้งค่าอย่างถูกต้องเพื่อ สื่อสารกับแคชระยะไกล ตรวจสอบว่าได้ตั้งค่า--remote_cacheแล้ว และไม่มีคำเตือนในเอาต์พุต

    ข. ตรวจสอบว่าการเรียกใช้ Bazel ที่อ่านแคชสร้างเป้าหมายเดียวกันกับการเรียกใช้ Bazel ที่เขียนแคช

    ค. ทำตามขั้นตอนเดียวกับที่ใช้ตรวจสอบการแคชในเครื่องต่างๆ เพื่อให้มั่นใจว่าการแคชจากการเรียกใช้ Bazel ที่เขียนแคชจะไปยังการเรียกใช้ Bazel ที่อ่านแคช