
Cuando ejecuto iperf3 para probar una conexión de 100G entre una caja VMware ESXi y una caja TrueNAS Core, veo lo siguiente en la caja ESXi:
- El mensaje "iperf3: getsockopt - Función no implementada" en cada intervalo
- Una gran cantidad de retransmisiones informadas en el primer y último intervalo, pero no en las estadísticas resumidas.
¿Está bien ignorar ambos? ¿O son indicativos de problemas reales?
Aquí están los detalles....
Configuración del servidor:
Supermicro H12SSL-NT, EPYC 7262, 128GB RAM
TrueNAS 13.0 U3
Mellanox ConnectX-5 100G
iperf3 v3.10.1
Configuración del cliente:
Supermicro X9SRE-F, E5-1650 v2, 16GB RAM
ESXi 6.7.0 P08
Mellanox ConnectX-5 100G
iperf3 v3.1.6
Comando del servidor:
iperf3 -s -B 192.168.25.5 -p 5101
Comando del cliente y salida:
[root@esxi:/usr/lib/vmware/vsan/bin] ./iperf3.copy -B 192.168.25.6 -c 192.168.25.5 -i 1 -p 5101 -f g -t 10
Connecting to host 192.168.25.5, port 5101
[ 4] local 192.168.25.6 port 27617 connected to 192.168.25.5 port 5101
iperf3: getsockopt - Function not implemented
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-1.00 sec 3.08 GBytes 26.4 Gbits/sec 8638800 0.00 Bytes
iperf3: getsockopt - Function not implemented
[ 4] 1.00-2.00 sec 3.03 GBytes 26.0 Gbits/sec 0 0.00 Bytes
iperf3: getsockopt - Function not implemented
[ 4] 2.00-3.00 sec 3.11 GBytes 26.7 Gbits/sec 0 0.00 Bytes
iperf3: getsockopt - Function not implemented
[ 4] 3.00-4.00 sec 2.91 GBytes 25.0 Gbits/sec 0 0.00 Bytes
iperf3: getsockopt - Function not implemented
[ 4] 4.00-5.00 sec 3.01 GBytes 25.9 Gbits/sec 0 0.00 Bytes
iperf3: getsockopt - Function not implemented
[ 4] 5.00-6.00 sec 3.04 GBytes 26.1 Gbits/sec 0 0.00 Bytes
iperf3: getsockopt - Function not implemented
[ 4] 6.00-7.00 sec 883 MBytes 7.41 Gbits/sec 0 0.00 Bytes
iperf3: getsockopt - Function not implemented
[ 4] 7.00-8.00 sec 2.99 GBytes 25.7 Gbits/sec 0 0.00 Bytes
iperf3: getsockopt - Function not implemented
[ 4] 8.00-9.00 sec 1.27 GBytes 10.9 Gbits/sec 0 0.00 Bytes
iperf3: getsockopt - Function not implemented
[ 4] 9.00-10.00 sec 2.75 GBytes 23.7 Gbits/sec 4286328496 0.00 Bytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-10.00 sec 26.0 GBytes 22.4 Gbits/sec 0 sender
[ 4] 0.00-10.00 sec 26.0 GBytes 22.4 Gbits/sec receiver
iperf Done.
Respuesta1
Este mensaje de error se produce debido a que las estadísticas de TCP no están en la estructura esperada en "ESXi's Linux".
La verificación de funciones en iperf es simplemente "¿es Linux" (https://github.com/esnet/iperf/blob/a2ce47a97acfad3acee91a6cb4da28f9f50c19df/src/tcp_info.c#L63), y espera que los datos se encuentren mediante una llamada getsockopt para TCP_INFO en una estructura específica.
Las estadísticas generales de la ejecución de prueba siguen siendo válidas ya que no dependen de la funcionalidad de comparación de intervalos.
Existen diferencias para FreeBSD, por ejemplo, que devuelve una estructura de datos diferente en comparación con el kernel de Linux. Verhttps://github.com/esnet/iperf/pull/244para detalles.
Se llama a save_tcpinfo para guardar información en cada período de intervalo, pero parece que la versión de iperf y Linux de ESXi no funcionan bien juntas para las estadísticas de intervalo.
Aquí se puede ver un ejemplo de cómo Dell también tiene este problema en la producción principal: https://www.dell.com/support/kbdoc/en-uk/000187640/dell-emc-vxrail-vsan-hosts-network-performance-test-does-not-exceed-10-000mb-s-bandwidth- infraestructura de red de 25 GB o superior.
El artículo anterior de Dell también puede brindarle algunos consejos sobre cómo manipular iperf para obtener el ancho de banda que esperaba...