วิธีใช้ iperf3 ในโหมดมัลติเธรดสำหรับทดสอบ Ethernet ความเร็ว 10Gbps+

ด้วยการที่ 10GbE เริ่มแพร่หลายมากขึ้นและมักพบในฮาร์ดแวร์ระดับ entry-level อาจเกิดปัญหา CPU คอขวด หรือ CPU Bottleneck ดังนั้นเราจะแนะนำวิธีใช้ iperf3 ในโหมดมัลติเธรด (multi-thread) เพื่อให้สามารถใช้แบนด์วิดท์ 10GbE ได้อย่างเต็มที่ แม้จะใช้ระบบที่มีโปรเซสเซอร์ multi-core ระดับเริ่มต้นก็ตาม

ตอนนี้เรากำลังรีวิวมินิพีซี iKOOCORE R2 Max มาพร้อมกับพอร์ต 10GbE สองช่อง และซีพียู Intel Processor N100 แบบ quad-core ระดับ entry-level เรามีมินิพีซี R2 Max ที่เกือบเหมือนกันสองเครื่อง: เครื่องหนึ่งไม่มีพัดลม ใช้ OpenWrt fork (QWRT) ทำหน้าที่เป็นเซิร์ฟเวอร์ และอีกเครื่องมีระบบระบายความร้อนแบบแอคทีฟ รัน Proxmox VE โดยไม่มี Guest OS เมื่อได้ทดสอบความเร็วการอัปโหลดด้วย iperf3 ความเร็วอยู่ที่ 9.41 Gbps ซึ่งถือว่าดี แต่ความเร็วในการดาวน์โหลดถูกจำกัดอยู่ที่ประมาณ 8.6 Gbps และในโหมดสองทาง (bidirectional) ประสิทธิภาพลดลง:


การใช้งาน CPU โดยรวมของระบบอยู่ที่ประมาณ 30% ระหว่างการทดสอบ แต่เราสามารถเห็นได้ชัดเจนว่ามีเพียง CPU core เดียวที่ถูกใช้งานเต็ม 100%

iperf3 single core CPU usage

ผู้ที่ใช้งานเซิร์ฟเวอร์ที่มี Ethernet ความเร็วสูง 40+ Gbpsได้ทำการทดสอบประเภทนี้มาสักระยะหนึ่งแล้ว อาจใช้หลายคำสั่งในการตั้งค่ามัลติเธรด แต่ iperf 3.16 ได้เพิ่มการรองรับมัลติเธรด ทำให้การใช้งานง่ายขึ้นมาก แต่เราไม่สามารถหาคำแนะนำที่ชัดเจนจากการค้นหาบนเว็บได้ ดังนั้นเรามาเริ่มกันเลย

อันดับแรก เราต้องตรวจสอบให้แน่ใจว่าเวอร์ชันของ iperf3 บนระบบของเราเป็น 3.16 หรือใหม่กว่านั้น

OpenWrt/QWRT:


Proxmox VE 8.3:


บน OpenWrt เวอร์ชันของ iperf3 ใช้งานได้ดีไม่มีปัญหา แต่บน Proxmox VE เวอร์ชันนั้นเก่าเกินไป ดังนั้นฉันจึงทำการคอมไพล์ iperf 3.18 รุ่นล่าสุดจากซอร์สโค้ดแทน:


ตอนนี้เราสามารถรัน iperf3 ในโหมดเซิร์ฟเวอร์บนเครื่อง OpwenWrt ได้ตามปกติ:


และเพิ่มพารามิเตอร์ P บนฝั่งไคลเอนต์ (Proxmox VE) เพื่อรัน iperf3 ในโหมดมัลติเธรดสำหรับการทดสอบการดาวน์โหลด:


นี่คือผลลัพธ์:


การแสดงผลค่อนข้างละเอียด มีช่วงเวลา 10 วินาทีและรันด้วย 4 เธรด แต่ส่วนสำคัญคือเราสามารถใช้แบนด์วิดท์เต็ม 9.41 Gbps ได้สำเร็จ

ลองมาทดสอบโหมด Full Duplex (หรือการส่งข้อมูลสองทางพร้อมกัน) :


ผลลัพธ์ที่ออกมา:


เมื่อดูสรุปข้อมูล [SUM][TX-C] และ [SUM][RX-C] จากการทดสอบ 1 นาที เราสามารถเห็นการรับส่งข้อมูล 9.40 Gbps ในทั้งสองทิศทาง ถือว่าประสบความสำเร็จ!

iperf3 multi threaded HTOP CPU usage

เครื่องมือ HTOP แสดงให้เห็นว่าอินสแตนท์ (instance) หลายตัวของ iperf3 ถูกกระจายการทำงานอย่างเหมาะสมไปยัง CPU ทั้ง 4 core ของ Intel Processor N100

แปลจากบทความภาษาอังกฤษ : How to use iperf3 in multi-thread mode for 10Gps+ Ethernet testing

FacebookTwitterLineEmailShare

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *

โฆษณา
โฆษณา