我没有对硬件或内核配置(所有默认设置,全新的操作系统安装,Linux内核3.11 TCP / IP堆栈)进行任何异常处理,通过TCP我平均每秒平均发送约383万条消息,而我平均仅为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交叉电缆连接。在这种情况下使用的NIC是具有开箱即用配置的Intel X520,并连接到主板上的PCIe 3.0 x8插槽,该插槽通过NUMA控制器与CPU通信。
您如何衡量基准?针对您发送的那些包裹?
—
Braiam 2014年
我使用
—
elleciel 2014年
netperf
了基准测试,UDP_STREAM和TCP_STREAM测试(固定到相同的CPU和64字节的消息大小)。
那不能回答@Braiam的问题。这里是网络拓扑,详细的测试方法很重要。
—
PavelŠimerda2014年
@PavelŠimerda对不起,我以为他只是在要求测试方法。关于网络拓扑,两个测试服务器是相同的,并通过10G交叉电缆直接连接。在这种情况下使用的NIC是具有开箱即用配置的Intel X520,并连接到主板上的PCIe 3.0 x8插槽,该插槽通过NUMA控制器与CPU通信。这回答了你的问题了吗?
—
elleciel 2014年
是的,@ elleciel,它肯定回答了我的问题。尽管在这种情况下,我没有专业知识为您提供直接连接机器的答案。我看到您修改了问题本身,这很棒。请问问题,因为我现在也很感兴趣。
—
PavelŠimerda2014年