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

รายงานปัญหา ดูแหล่งที่มา Nightly · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

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

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

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