在交换网络上 VM 和裸机桌面之间的真实 Tailscale iperf3 结果

我们使用基于以下设备的网络测试了 iperf3 性能:

Tailscale 版本为

tailscale_iperf_results.txt
1.24.1
  tailscale commit: 1a9302b1edba91d0f638e775faeaa0ce2a6a25f8
  other commit: 1331ed5836e1a0ab32b10e6ce8748e17ba2c7598
  go version: go1.18.1-ts710a0d8610

网络是完全交换的,不是路由的,我们通过 tailscale ping 确保 tailscale 实际使用交换连接。

测试 0:通过交换网络直接连接

桌面运行 iperf -s,虚拟机运行 iperf -c 10.9.2.10

iperf_direct_desktop_to_vm.txt
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.

虚拟机运行 iperf -s,桌面运行 iperf -c 10.9.2.103

iperf_direct_vm_to_desktop.txt
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.

虚拟机托管 iperf -s 服务器即发送数据的方向显示性能略有下降

测试 1:桌面运行 iperf -s,虚拟机运行 iperf -c

iperf_tailscale_desktop_to_vm.txt
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.

测试 2:虚拟机运行 iperf -s,桌面运行 iperf -c

iperf_tailscale_vm_to_desktop.txt
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                  receiver

UDP 测试

UDP 测试与 TCP 测试大致相似(尽管吞吐量略高,高达 400 Mbit/s),包括对连接方向的敏感性。

结果解读

Tailscale 对网络速度有显著影响,在典型的几年前的桌面和虚拟机设置下,通常无法达到接近千兆的 iperf3 速度。但是,200-400 Mbit/s 的吞吐量对大多数应用来说已经足够了。

有趣的是,速度高度依赖于功能较弱的虚拟机和功能较强的桌面之间的传输方向,两个方向之间有 x1.5 … x2 的差异。这可能归因于加密或解密数据所需的计算量。


Check out similar posts by category: Networking