Non ho fatto nulla di insolito per le mie configurazioni hardware o del kernel (tutte le impostazioni predefinite, nuova installazione del sistema operativo, stack TCP / IP 3.11 del kernel Linux) e sto facendo una media di circa 3,83 milioni di messaggi al secondo tramite TCP mentre sto solo facendo una media di 0,75 milioni di messaggi al secondo tramite UDP. Questo sembra sfidare completamente ciò che mi aspetto dai due protocolli.
Qual è la causa più probabile della drastica differenza e come posso diagnosticarla su 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
Per questo test ho due server di test identici e collegati direttamente tramite un cavo crossover 10G. Le schede di rete utilizzate in questo caso sono Intel X520 con configurazioni predefinite e collegate a uno slot PCIe 3.0 x8 sulla scheda madre, che comunica con la CPU tramite un controller NUMA.
netperf
per i benchmark, i test UDP_STREAM e TCP_STREAM, fissati sulla stessa CPU e le dimensioni dei messaggi a 64 byte.