Networking

1Gbit LAN 上的 scp 性能

  • January 20, 2022

在我的有線 LAN 上,使用 1GBit/s 設備,我有兩台 Linux 機器(一台 Haswell,一台 Skylake Xeon),當我對一個大文件進行安全複製時,我看到 38MB/s。

看到這比1000Mbit/s規格低3倍,不知道這個性能是否符合預期?

兩台機器都使用 SSD 進行儲存,都執行 64 位 Ubuntu。

在傳輸過程中,兩台機器大約有一個核心,負載為 30%。

位於機器之間的路由器是 TP-Link Archer C7 AC1750。兩台機器都具有處於全雙工模式的 Intel(R) 千兆乙太網網路設備。

1Gbit LAN 上的正常 scp 傳輸速度是多少?

更新

  • 使用/dev/zero排除磁碟 IO 產生相同的結果。
  • 使用 nc 的結果略高:41MiB/s。
  • 矛盾的是,UDP nc 比 TCP nc 慢,為 38MiB/s?
  • 切換到交叉電纜:scp 為 112MB/s。

結論

中間的 TP-Link 路由器是網路中的薄弱環節,跟不上。

從理論的角度來看,它確實看起來很慢,儘管我沒有看到在家用硬體上實際傳輸速度更快。

您可能希望嘗試排除可能的限制因素的一些實驗:

  • 通過從 複製到/dev/zero來評估您的原始 SSH 速度/dev/null。這排除了高畫質瓶頸。
ssh remote_host cat /dev/zero | pv > /dev/null
  • 檢查其他未加密的協議,例如 HTTP。HTTP 實際上發送文件時只包含一個標頭。通過 HTTP 發送大文件是衡量 TCP 速度的合理方法。
  • 檢查您是否沒有強制流量通過路由器,而只是通過乙太網交換機。例如,如果您的機器具有公共 IP 和本地 IP,則 scp 與本地 IP 往來。這是因為家庭路由器通常必須通過其 CPU 處理 WAN 流量,這會造成瓶頸。即使兩台機器都在 LAN 上,使用公共 IP 也可以強制數據包通過 CPU,就好像它要去 WAN 一樣。
  • 同樣,我會使用 IPv4。 一些家用路由器對 IPv6 有一種奇怪的行為,它們要求將所有本地流量轉發到路由器。
  • 如果可能的話,嘗試使用千兆交叉電纜而不是路由器。這應該排除路由器。

引用自:https://unix.stackexchange.com/questions/610133