- GNU Parallel มีประโยชน์สำหรับการรันการทดสอบ E2E แบบขนาน
- ผู้เขียนต้องการเก็บสถิติเกี่ยวกับอัตราการผ่าน/ไม่ผ่านของชุดทดสอบที่ใช้เวลารันนาน กับบริการจริงที่ให้บริการผ่าน HTTP ตลอดช่วงเวลาที่ยาวนาน
- ในตอนแรก ผู้เขียนใช้ลูปซ้อนใน bash เพื่อรันการทดสอบ แต่เพราะแต่ละการทดสอบใช้เวลานาน วิธีนี้จึงช้า
- หลังจากนั้นจึงใช้ GNU Parallel เพื่อรันการทดสอบแบบขนาน ทำให้ทั้งประสิทธิภาพและความสามารถดีขึ้นมากด้วยโค้ดที่น้อยลง
- ใน GNU Parallel สามารถระบุให้คำสั่งรันแบบขนานได้ และตัวแทนค่า ({1}, {2} เป็นต้น) จะถูกแทนที่ด้วยค่าอินพุต
- อินพุตของคำสั่งจะถูกระบุหลังโอเปอเรเตอร์ ::: และจะถูกส่งให้คำสั่งในทุกชุดค่าผสมที่เป็นไปได้
- GNU Parallel มีตัวเลือกสำหรับควบคุมความพร้อมกันและหลีกเลี่ยงการแย่งทรัพยากร เช่น จำกัดจำนวนงานที่รันพร้อมกัน หรือหน่วงเวลาเริ่มต้นของแต่ละงาน
- เครื่องมือนี้ยังสามารถส่งออกไฟล์ CSV ที่มีผลลัพธ์เมื่อจบงานได้ด้วย: ระยะเวลา, exit code, และ stdout/stderr ที่จับไว้
- ผู้เขียนแนะนำหนังสือของ Ole Tange ผู้สร้าง GNU Parallel เพื่อศึกษาความสามารถของเครื่องมือเชิงลึกยิ่งขึ้น เช่น การกระจายงานไปยังโฮสต์อื่นด้วย SSH, การติดตามเวลาที่งานเสร็จ, การลองรันงานที่มีโอกาสล้มเหลวสูงซ้ำ, การทำงานต่อจากจุดเดิมเมื่อการรันแบบขนานถูกขัดจังหวะกลางคัน, หรือการจำกัดความพร้อมกันของงานตามอัตราการใช้ CPU
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ForEach-Objectcmdlet ของ PowerShell ที่มีพารามิเตอร์-parallelพร้อมเน้นเสน่ห์ของการทำงานแบบขนานผ่านเครื่องมือบรรทัดคำสั่ง