No he hecho nada inusual en mis configuraciones de hardware o kernel (todas las configuraciones predeterminadas, instalación nueva del sistema operativo, kernel de Linux 3.11 TCP / IP stack) y estoy promediando alrededor de 3.83 millones de mensajes por segundo a través de TCP mientras solo estoy promediando 0.75 millones de mensajes por segundo a través de UDP. Esto parece desafiar completamente lo que espero de los dos protocolos.
¿Cuál es la causa más probable de la diferencia drástica y cómo puedo diagnosticarla en 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
Para esta prueba, tengo dos servidores de prueba que son idénticos y están conectados directamente a través de un cable cruzado de 10G. Las NIC utilizadas en este caso son Intel X520 con configuraciones listas para usar y conectadas a una ranura PCIe 3.0 x8 en la placa base, que se comunica con la CPU a través de un controlador NUMA.
netperf
para los puntos de referencia, las pruebas UDP_STREAM y TCP_STREAM, fijadas en la misma CPU y los tamaños de mensaje de 64 bytes.