Tcpdump

使用 iperf 和 tcpdump 的丟包率

  • May 28, 2010

我測試了一條線路的連結質量iperf。測得的速度(UDP 埠 9005)為 96Mbps,這很好,因為兩台伺服器都以 100Mbps 的速度連接到網際網路。另一方面,數據報失去率顯示為 3.3-3.7%,我發現這有點太多了。使用高速傳輸協議,我用tcpdump. 比我計算的丟包率——平均 0.25%。有沒有人解釋一下,這個巨大的差異可能來自哪裡?您認為可接受的丟包率是多少?

由於 CPU 無法跟上,我在 UDP 模式下使用 iPerf 時經歷了嚴重的數據失去。出於某種原因,使用 UDP 的 iPerf 似乎使用 TCP 的 iPerf 佔用更多 CPU。當您將 iPerf 設置為一半時,您是否遇到相同的損失百分比?

要回答關於多少封包遺失是可以接受的第二個問題,這實際上取決於您正在執行的應用程序,您有多少流量。確實,如果您低於頻寬限制,則不應該有任何損失。對於大多數事情,我可能不會過多抱怨 0.25%,但如果你以非常高的速率執行,那仍然是一個很大的損失。

$$ EDIT 1 $$我對這個話題的一些其他想法:

  1. 嘗試增加 iPerf 的速率。如果某處存在系統性問題,無論發生率如何,您都可能會遇到相同百分比的損失。如果您處於硬體的極限,或者您的供應商做了某種RED,那麼在達到一定比率之前可能不會有任何損失,然後隨著您去的越高,損失越嚴重。
  2. 對 iPerf 會話進行 tcpdump 測量,只是為了驗證您的測試是否準確。
  3. 嘗試使用 TCP 的 iPerf。這不會報告失去,但是如果您失去了,那麼連接將無法擴展得非常高。由於延遲也會影響這一點,因此請確保以盡可能少的延遲測試端點。
  4. 根據連接內部的設備,確保盡可能靠近它。例如,如果您的測試系統和邊緣路由器之間有多個交換機,請移至直接連接的交換機。
  5. 如果您有託管交換機,請檢查其上的統計資訊以確保那裡沒有發生失去。我遇到過一些更便宜的交換機,當您在它們上獲得接近 100Mbps 的 UDP 流量時它們會開始下降(不過主要是舊的和廉價的非託管交換機)。
  6. 嘗試同時從兩個不同的客戶端到兩個不同的主機的 iPerfs,這樣您就可以確定限制不是 CPU 或便宜的本地 NIC 卡的結果。

引用自:https://serverfault.com/questions/142891