Linux

LAN 上的目標網路速度

  • January 11, 2013

我有一個 Solaris 11 系統,它有幾個 NFS 導出,可以訪問我 LAN 中的其他系統。我使用Linux系統作為客戶端進行測試。

我編寫了一個快速腳本來測試讀取速度,我在千兆 LAN 上的平均速度約為 110Mbps(或 13MB/s)。我會認為它可以變得更快。SSH (scp) 只給我 3.8MB/s 但這是加密的。

http 給了我 11.5M/s,類似於 NFS 比。這不是低嗎?

這些數字可能是什麼瓶頸?

NFS 無法真正最大化吞吐量,因為客戶端一直在發送請向我發送這麼多數據到伺服器(限制在幾千字節)並等待完整的答案,然後再詢問更多,這意味著時間,當所有隊列是空的。網路上的所有 FS(CIFS、SSHFS)都有同樣的問題(還有 IIRC scp,或者可能只是sftp,我不記得了)

除了加密成本之外,ssh還有一些性能限制(詳見此處)。

HTTP,除非您使用執行分塊請求的客戶端,否則應該是直接的 TCP,因此不應該有這種限制。TCP 應該使用它的擁塞控制算法來最大化吞吐量,同時避免擁塞。雖然前幾千字節的傳輸速度可能很慢,但如果兩台機器通過同一個交換機連接,您應該能夠在 10 秒內最大化您的頻寬。可能存在一些較差的網路質量(例如奇怪的封包遺失)。

您可能想嘗試的事情:

  • /dev/zero通過普通 TCP 連接傳輸內容(使用socatnc例如),以排除瓶頸是 FS 訪問。
  • 檢查網路介面統計資訊是否存在傳輸錯誤,以及 TCP 堆棧統計資訊 ( netstat -s)
  • 使用iperf(TCP 和 UDP)進行測試。

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