だめぷろふ記

なんとなくだめ

Tailscaleの速度ボトルネックはどこ?

Tailscaleの速度が思うように出ないというメモ。

前提

全PC、同一ノードに参加。

A拠点PC1

  • Plala IPoE(DS Lite)接続(確認くんだとASAHINETと表示される古の回線)
  • インターネットルーターはEdgeRouter X SPFまたはRTX830
  • 性能は最新、通信の足を引っ張る要素なし

A拠点PC2

  • 回線はPC1と同じ
  • PCはマウスの激安子供向けノート+USB3.0接続の有線LANなのでちょっとは足引っ張るかもね

B拠点PC3

  • ASAHINET PPPoE接続
  • インターネットルーターYAMAHA RTX1210
  • 第7世代Core i7だけどメモリは潤沢、SSDなので足は引っ張らないと思う

拠点内LAN接続

まずはA拠点PC同士でiperf3。サーバーは性能が低い方で。なんとなく。

>iperf3.exe -c A拠点PC2(拠点内LAN)
Connecting to host A拠点PC2(拠点内LAN), port 5201
[ 4] local A拠点PC1(拠点内LAN) port 60277 connected to A拠点PC2(拠点内LAN) port 5201
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.00 sec 113 MBytes 949 Mbits/sec
[ 4] 1.00-2.00 sec 113 MBytes 949 Mbits/sec
[ 4] 2.00-3.00 sec 113 MBytes 946 Mbits/sec
[ 4] 3.00-4.00 sec 113 MBytes 948 Mbits/sec
[ 4] 4.00-5.00 sec 112 MBytes 944 Mbits/sec
[ 4] 5.00-6.00 sec 109 MBytes 916 Mbits/sec
[ 4] 6.00-7.00 sec 108 MBytes 908 Mbits/sec
[ 4] 7.00-8.00 sec 113 MBytes 946 Mbits/sec
[ 4] 8.00-9.00 sec 113 MBytes 948 Mbits/sec
[ 4] 9.00-10.00 sec 113 MBytes 949 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-10.00 sec 1.09 GBytes 940 Mbits/sec sender
[ 4] 0.00-10.00 sec 1.09 GBytes 940 Mbits/sec receiver

iperf Done.

ええやん。まー暗号化されてないから。

拠点内Tailscale接続

次、同じ組み合わせでTailscale接続経由。

>iperf3.exe -c A拠点PC2(Tailscale)
Connecting to host A拠点PC2(Tailscale), port 5201
[ 4] local A拠点PC1(Tailscale) port 60220 connected to A拠点PC2(Tailscale) port 5201
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.01 sec 17.5 MBytes 146 Mbits/sec
[ 4] 1.01-2.00 sec 17.0 MBytes 143 Mbits/sec
[ 4] 2.00-3.00 sec 17.5 MBytes 147 Mbits/sec
[ 4] 3.00-4.00 sec 17.8 MBytes 149 Mbits/sec
[ 4] 4.00-5.00 sec 17.8 MBytes 149 Mbits/sec
[ 4] 5.00-6.00 sec 17.9 MBytes 150 Mbits/sec
[ 4] 6.00-7.00 sec 17.6 MBytes 148 Mbits/sec
[ 4] 7.00-8.00 sec 18.1 MBytes 152 Mbits/sec
[ 4] 8.00-9.00 sec 14.6 MBytes 123 Mbits/sec
[ 4] 9.00-10.00 sec 11.6 MBytes 97.8 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-10.00 sec 167 MBytes 140 Mbits/sec sender
[ 4] 0.00-10.00 sec 167 MBytes 140 Mbits/sec receiver

iperf Done.

この数字をどう見るか。 個人的には運用上問題ないけど思ったより遅い。

この測定結果は同じルーターから出入りしてるけど、ルーター2台使って違うルーターを経由して同じHGWから出る構成でも結果は同じだった。どこでどう折り返しているのだろうか。

拠点間Tailscale接続

次、拠点間。B拠点PC3からA拠点PC2へ。

>iperf3.exe -c A拠点PC2(Tailscale)
Connecting to host A拠点PC2(Tailscale), port 5201
[ 4] local B拠点PC3(Tailscale) port 55513 connected to A拠点PC2(Tailscale) port 5201
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.00 sec 2.75 MBytes 23.0 Mbits/sec
[ 4] 1.00-2.00 sec 3.88 MBytes 32.6 Mbits/sec
[ 4] 2.00-3.01 sec 4.12 MBytes 34.1 Mbits/sec
[ 4] 3.01-4.01 sec 4.25 MBytes 35.9 Mbits/sec
[ 4] 4.01-5.01 sec 4.88 MBytes 40.8 Mbits/sec
[ 4] 5.01-6.01 sec 5.38 MBytes 45.0 Mbits/sec
[ 4] 6.01-7.01 sec 5.25 MBytes 44.4 Mbits/sec
[ 4] 7.01-8.01 sec 3.50 MBytes 29.4 Mbits/sec
[ 4] 8.01-9.00 sec 4.00 MBytes 33.7 Mbits/sec
[ 4] 9.00-10.00 sec 4.00 MBytes 33.5 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-10.00 sec 42.0 MBytes 35.2 Mbits/sec sender
[ 4] 0.00-10.00 sec 42.0 MBytes 35.2 Mbits/sec receiver

iperf Done.

えぇ・・・遅い・・・

なぜなのか。

サーバーを高性能なPCに変更

なおA拠点PC1をサーバーにしたら、さらに悪化した。

[ 4] 0.00-10.00 sec 17.9 MBytes 15.0 Mbits/sec sender
[ 4] 0.00-10.00 sec 17.8 MBytes 14.9 Mbits/sec receiver

[ 4] 0.00-10.00 sec 23.0 MBytes 19.3 Mbits/sec sender
[ 4] 0.00-10.00 sec 22.9 MBytes 19.2 Mbits/sec receiver

[ 4] 0.00-10.00 sec 22.0 MBytes 18.5 Mbits/sec sender
[ 4] 0.00-10.00 sec 21.9 MBytes 18.4 Mbits/sec receiver

なぜなのか。 A拠点PC2にサーバーを戻してみる。

[ 4] 0.00-10.01 sec 54.9 MBytes 46.0 Mbits/sec sender
[ 4] 0.00-10.01 sec 54.8 MBytes 46.0 Mbits/sec receiver

[ 4] 0.00-10.01 sec 45.2 MBytes 37.9 Mbits/sec sender
[ 4] 0.00-10.01 sec 45.2 MBytes 37.9 Mbits/sec receiver

[ 4] 0.00-10.00 sec 53.1 MBytes 44.6 Mbits/sec sender
[ 4] 0.00-10.00 sec 53.1 MBytes 44.6 Mbits/sec receiver

えぇ・・・再現性あんの・・・どゆこと・・・逆ならまだしも・・・

よくわからない

それぞれの拠点でooklaのスピードテストしても上下数百Mbps出てる。

Tailscaleの端末間通信はChaCha20-Poly1305を使うP2Pと理解している。ので、経路ボトルネック最小となる同一拠点Tailscale端末間通信は、消去法的に暗号化負荷が支配的になると思う。

まー他拠点からでもそんなに速度はへこまんであろう、くらいに思ってたのです。根拠ないけど8割程度は出るだろうと。

でもこの結果を見ると全然そうはなっておらず、見えてはいないがしかし確固たる何かがありそう。へっぽこスペックの端末のが速いってのも、わからない。

さてどこにボトルネックがあるのやら。

ボトルネックの探し方から探す感じかね・・・