Tailscale iperf3-Ergebnisse: VM und Bare-Metal-Desktop in einem geswitchten Netzwerk
Wir haben die iperf3-Performance in unserem Netzwerk getestet, das auf den folgenden Geräten basiert:
- Desktop: Ubuntu 21.10 i7-6700 CPU @ 3.40 GHz, verbunden per 1Gbase-T mit
- Desktop-Switch: Mikrotik CSS610-8G-2S+IN, verbunden per 10GBase-T Multimode-SFP+-Modul mit:
- Core-Switch: Mikrotik CRS309-1G-8S+IN, verbunden per 10GBase-T-DAC-Kabel mit
- Virtualisierungsserver: i5-6500 CPU @ 3.20GHz mit XCP-NG 8.2.1
- Virtuelle Maschine: Ubuntu 20.04, 4 Kerne, 8 GB RAM
Die Tailscale-Version war
1.24.1
tailscale commit: 1a9302b1edba91d0f638e775faeaa0ce2a6a25f8
other commit: 1331ed5836e1a0ab32b10e6ce8748e17ba2c7598
go version: go1.18.1-ts710a0d8610Das Netzwerk ist vollständig geswitcht, nicht geroutet und wir haben sichergestellt, dass Tailscale tatsächlich die geswitchte Verbindung nutzt, mittels tailscale ping.
Test 0: Direkte Verbindung über geswitchtes Netzwerk
Desktop führt iperf -s aus, VM führt iperf -c 10.9.2.10 aus:
Connecting to host 10.9.2.10, port 5201
[ 5] local 10.9.2.103 port 52944 connected to 10.9.2.10 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 94.7 MBytes 794 Mbits/sec 338 109 KBytes
[ 5] 1.00-2.00 sec 98.0 MBytes 822 Mbits/sec 353 148 KBytes
[ 5] 2.00-3.00 sec 96.6 MBytes 811 Mbits/sec 382 117 KBytes
[ 5] 3.00-4.00 sec 103 MBytes 862 Mbits/sec 334 116 KBytes
[ 5] 4.00-5.00 sec 101 MBytes 851 Mbits/sec 483 102 KBytes
[ 5] 5.00-6.00 sec 104 MBytes 874 Mbits/sec 503 126 KBytes
[ 5] 6.00-7.00 sec 105 MBytes 883 Mbits/sec 527 119 KBytes
[ 5] 7.00-8.00 sec 108 MBytes 906 Mbits/sec 451 105 KBytes
[ 5] 8.00-9.00 sec 108 MBytes 903 Mbits/sec 442 117 KBytes
[ 5] 9.00-10.00 sec 107 MBytes 900 Mbits/sec 461 123 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 1.00 GBytes 861 Mbits/sec 4274 sender
[ 5] 0.00-10.00 sec 1.00 GBytes 860 Mbits/sec receiver
iperf Done.VM führt iperf -s aus, Desktop führt iperf -c 10.9.2.103 aus
Connecting to host 10.9.2.103, port 5201
[ 5] local 10.9.2.10 port 42630 connected to 10.9.2.103 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 88.5 MBytes 742 Mbits/sec 0 966 KBytes
[ 5] 1.00-2.00 sec 90.0 MBytes 755 Mbits/sec 0 1.12 MBytes
[ 5] 2.00-3.00 sec 87.5 MBytes 734 Mbits/sec 33 833 KBytes
[ 5] 3.00-4.00 sec 90.0 MBytes 755 Mbits/sec 0 833 KBytes
[ 5] 4.00-5.00 sec 88.8 MBytes 745 Mbits/sec 0 1.00 MBytes
[ 5] 5.00-6.00 sec 88.8 MBytes 744 Mbits/sec 0 1.00 MBytes
[ 5] 6.00-7.00 sec 87.5 MBytes 734 Mbits/sec 0 1.09 MBytes
[ 5] 7.00-8.00 sec 90.0 MBytes 755 Mbits/sec 0 1.09 MBytes
[ 5] 8.00-9.00 sec 90.0 MBytes 755 Mbits/sec 0 1.09 MBytes
[ 5] 9.00-10.00 sec 90.0 MBytes 755 Mbits/sec 13 863 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 891 MBytes 747 Mbits/sec 46 sender
[ 5] 0.00-10.00 sec 888 MBytes 745 Mbits/sec receiver
iperf Done.In der Richtung, in der die VM den iperf -s-Server hostet, also die Daten sendet, zeigt sich ein leichter Performance-Rückgang.
Test 1: Desktop führt iperf -s aus, VM führt iperf -c aus
Connecting to host 100.64.0.2, port 5201
[ 5] local 100.64.0.3 port 37466 connected to 100.64.0.2 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 39.4 MBytes 330 Mbits/sec 62 149 KBytes
[ 5] 1.00-2.00 sec 45.8 MBytes 385 Mbits/sec 44 150 KBytes
[ 5] 2.00-3.00 sec 38.9 MBytes 326 Mbits/sec 97 122 KBytes
[ 5] 3.00-4.00 sec 47.9 MBytes 401 Mbits/sec 7 242 KBytes
[ 5] 4.00-5.00 sec 39.5 MBytes 332 Mbits/sec 118 110 KBytes
[ 5] 5.00-6.00 sec 46.6 MBytes 391 Mbits/sec 32 136 KBytes
[ 5] 6.00-7.00 sec 41.8 MBytes 351 Mbits/sec 42 159 KBytes
[ 5] 7.00-8.00 sec 44.3 MBytes 372 Mbits/sec 91 104 KBytes
[ 5] 8.00-9.00 sec 36.1 MBytes 303 Mbits/sec 72 133 KBytes
[ 5] 9.00-10.00 sec 41.5 MBytes 348 Mbits/sec 39 139 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 422 MBytes 354 Mbits/sec 604 sender
[ 5] 0.00-10.00 sec 421 MBytes 353 Mbits/sec receiver
iperf Done.Test 2: VM führt iperf -s aus, Desktop führt iperf -c aus
Connecting to host 100.64.0.3, port 5201
[ 5] local 100.64.0.2 port 36744 connected to 100.64.0.3 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 23.7 MBytes 199 Mbits/sec 104 89.9 KBytes
[ 5] 1.00-2.00 sec 23.6 MBytes 198 Mbits/sec 80 49.2 KBytes
[ 5] 2.00-3.00 sec 21.1 MBytes 177 Mbits/sec 59 54.0 KBytes
[ 5] 3.00-4.00 sec 23.6 MBytes 198 Mbits/sec 68 69.6 KBytes
[ 5] 4.00-5.00 sec 19.1 MBytes 160 Mbits/sec 77 48.0 KBytes
[ 5] 5.00-6.00 sec 25.3 MBytes 212 Mbits/sec 76 62.4 KBytes
[ 5] 6.00-7.00 sec 21.4 MBytes 179 Mbits/sec 50 107 KBytes
[ 5] 7.00-8.00 sec 25.6 MBytes 215 Mbits/sec 35 124 KBytes
[ 5] 8.00-9.00 sec 22.5 MBytes 188 Mbits/sec 71 48.0 KBytes
[ 5] 9.00-10.00 sec 25.0 MBytes 209 Mbits/sec 42 64.8 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 231 MBytes 194 Mbits/sec 662 sender
[ 5] 0.00-10.01 sec 230 MBytes 193 Mbits/sec receiverUDP-Tests
Die UDP-Tests waren weitgehend ähnlich zu den TCP-Tests (wenn auch mit leicht höherem Durchsatz von bis zu 400 Mbit/s), einschließlich der Empfindlichkeit bezüglich der Verbindungsrichtung.
Interpretation der Ergebnisse
Tailscale hat erheblichen Einfluss auf die Netzwerkgeschwindigkeit und wird bei typischen Setups mit einigen Jahre alten Desktops und virtuellen Maschinen regelmäßig keine iperf3-Geschwindigkeiten nahe einem Gigabit erreichen. Ein Durchsatz von 200–400 Mbit/s reicht jedoch für die meisten Anwendungen völlig aus.
Interessanterweise hängt die Geschwindigkeit stark von der Übertragungsrichtung zwischen einer weniger leistungsstarken VM und einem leistungsstärkeren Desktop ab, mit einem Faktor von x1,5 … x2 zwischen den beiden Richtungen. Dies lässt sich vermutlich auf den Rechenaufwand zurückführen, der zum Ver- bzw. Entschlüsseln der Daten erforderlich ist.