Rendimiento muy bajo en la networking 10GbE

Tengo dos máquinas Linux, cada una equipada con una NIC Solarflare SFN5122F 10GbE. Las dos NIC están conectadas con un cable SFP + Direct Attach.

Estoy usando netperf para medir el performance de TCP entre las dos máquinas. En una caja, corro:

netserver 

y por otro:

 netperf -t TCP_STREAM -H 192.168.xx -- -m 32768 

Yo obtengo:

 MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.xx (192.168.xx) port 0 AF_INET Recv Send Send Socket Socket Message Elapsed Size Size Size Time Throughput bytes bytes bytes secs. 10^6bits/sec 87380 16384 32768 10.02 1321.34 

El caudal medido es de 1.3Gb / s. Esto es 7.5x por debajo del máximo teórico, y sólo un 30% más rápido que 1GbE.

¿Qué pasos puedo tomar para solucionar este problema?

pocas cosas:

  • ¿trató de ajustar mtu para hacer uso de jumbo-frameworks ?
  • ¿está usted absolutamente seguro de que el enlace entre los dos serveres no tiene ninguna pérdida de packages?
  • ethtool le muestra errores en las interfaces en ambos extremos?
  • lo que hace arriba / encima de decir durante la testing prolongada – ¿ves alguno de los núcleos completamente ocupado por iowait?

lo más probable es que no logres 10gbit completo en una sola session tcp, pero puedes hacer alguna afinación adicional para acercarte a ella, ajustando el manejo tcp y la comunicación con la propia tarjeta de networking. Echa un vistazo aquí o aquí .