ฉันไม่ได้ทำอะไรผิดปกติกับการกำหนดค่าฮาร์ดแวร์หรือเคอร์เนล (การตั้งค่าเริ่มต้นทั้งหมด, การติดตั้งระบบปฏิบัติการใหม่, Linux kernel 3.11 TCP / IP สแต็ค) และฉันเฉลี่ยประมาณ 3.83 ล้านข้อความต่อวินาทีผ่าน TCP ในขณะที่ฉันเฉลี่ยเพียง 0.75 ล้านข้อความต่อวินาทีผ่าน UDP ดูเหมือนว่าจะท้าทายสิ่งที่ฉันคาดหวังของทั้งสองโปรโตคอลอย่างสมบูรณ์
อะไรเป็นสาเหตุที่ทำให้เกิดความแตกต่างอย่างมากและฉันจะวินิจฉัยบน Ubuntu 13.10 ได้อย่างไร
#TCP RESULTS
Recv Send Send Utilization Service Demand
Socket Socket Message Elapsed Send Recv Send Recv
Size Size Size Time Throughput local remote local remote
bytes bytes bytes secs. 10^6bits/s % S % S us/KB us/KB
87380 65536 64 10.00 1963.43 32.96 17.09 5.500 2.852
#UDP RESULTS
Socket Message Elapsed Messages CPU Service
Size Size Time Okay Errors Throughput Util Demand
bytes bytes secs # # 10^6bits/sec % SS us/KB
4194304 64 10.00 7491010 0 383.5 28.97 24.751
212992 10.00 1404941 71.9 25.03 21.381
สำหรับการทดสอบนี้ฉันมีเซิร์ฟเวอร์ทดสอบสองตัวที่เหมือนกันและเชื่อมต่อโดยตรงผ่านสายเคเบิลครอสโอเวอร์ 10G NICs ที่ใช้ในกรณีนี้คือ Intel X520 พร้อมการกำหนดค่าแบบนอกกล่องและเชื่อมต่อกับสล็อต PCIe 3.0 x8 บนเมนบอร์ดซึ่งสื่อสารกับ CPU ผ่านตัวควบคุม NUMA
netperf
สำหรับการวัดประสิทธิภาพการทดสอบ UDP_STREAM และ TCP_STREAM แก้ไขไปยัง CPU เดียวกันและขนาดข้อความ 64 ไบต์