
Wenn ich iperf3 ausführe, um eine 100G-Verbindung zwischen einer VMware ESXi-Box und einer TrueNAS Core-Box zu testen, sehe ich auf der ESXi-Box Folgendes:
- Die Meldung "iperf3: getsockopt - Funktion nicht implementiert" in jedem Intervall
- Eine große Anzahl von Neuübertragungen wurde im ersten und letzten Intervall gemeldet, jedoch nicht in der Übersichtsstatistik
Kann man beides ignorieren? Oder sind sie Anzeichen für tatsächliche Probleme?
Hier sind die Details....
Server-Setup:
Supermicro H12SSL-NT, EPYC 7262, 128GB RAM
TrueNAS 13.0 U3
Mellanox ConnectX-5 100G
iperf3 v3.10.1
Client-Setup:
Supermicro X9SRE-F, E5-1650 v2, 16GB RAM
ESXi 6.7.0 P08
Mellanox ConnectX-5 100G
iperf3 v3.1.6
Serverbefehl:
iperf3 -s -B 192.168.25.5 -p 5101
Client-Befehl und Ausgabe:
[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.
Antwort1
Diese Fehlermeldung wird erzeugt, weil die TCP-Statistiken unter „ESXi Linux“ nicht die erwartete Struktur aufweisen.
Die Funktionsüberprüfung in iperf erfolgt einfach „Ist es Linux“ (https://github.com/esnet/iperf/blob/a2ce47a97acfad3acee91a6cb4da28f9f50c19df/src/tcp_info.c#L63) und erwartet, dass die Daten über einen getsockopt-Aufruf für TCP_INFO in einer bestimmten Struktur gefunden werden.
Die Gesamtstatistiken für den Testlauf sind weiterhin gültig, da sie nicht auf der Intervallvergleichsfunktion basieren.
Es gibt Unterschiede für FreeBSD, da hier eine andere Datenstruktur zurückgegeben wird als beim Linux-Kernel. Siehehttps://github.com/esnet/iperf/pull/244für Details.
save_tcpinfo wird aufgerufen, um in jedem Intervallzeitraum Informationen zu speichern, aber es scheint, dass die Version von iperf und ESXi Linux bei Intervallstatistiken nicht gut zusammenarbeiten.
Ein Beispiel dafür, dass dieses Problem auch bei Dell in der Hauptproduktion auftritt, finden Sie hier: https://www.dell.com/support/kbdoc/en-uk/000187640/dell-emc-vxrail-vsan-hosts-network-performance-test-does-not-exceed-10-000mb-s-bandwidth-on-25gb-or-higher-network-infrastructure.
Der obige Dell-Artikel kann Ihnen auch einige Hinweise geben, wie Sie iperf manipulieren können, um die Bandbreite zu erhalten, die Sie möglicherweise erwartet haben ...