吞吐量
根據傳輸的資料和時間計算網路吞吐量
如何使用吞吐量
- 1輸入傳輸的資料量和所用時間。
- 2選擇單位(MB/GB 與秒/分鐘)。
- 3讀取 Mbps 或 MB/s 吞吐率,並與鏈路容量比較。
吞吐率與頻寬
吞吐率 = 傳輸資料量 / 時間;1 MB/s = 8 Mbps吞吐率是實際成功交付資料的速率;頻寬是鏈路的理論容量。
受開銷、擁塞和協議低效(TCP、重傳)影響,實際吞吐率常低於頻寬。
**Goodput 才是使用者真正關心的指標**:它扣除了協議頭部、重傳、握手等一切開銷,只算有效應用資料的速率。一個 100 Mbps 鏈路,扣掉約 6% 的乙太網路+IP+TCP 頭部、1% 的重傳、以及 TCP 慢啟動的影響,Goodput 通常只有 85–92 Mbps。**做容量規劃時必須用 Goodput 而非頻寬**,否則會系統性高估。
吞吐量的三個常見瓶頸:① **頻寬受限**(小檔案、低頻寬鏈路);② **延遲受限**(大數據、高延遲鏈路,視窗不夠大);③ **併發受限**(連線數不夠、執行緒數不足)。判斷方法:如果增加併發數吞吐就上升,說明是延遲/併發瓶頸;如果併發加到很多吞吐仍不漲,就是頻寬瓶頸。**多執行緒下載、HTTP/2 多路複用都是為了解決延遲受限的問題。**
| 指標 | 定義 | 單位 | 類比 |
|---|---|---|---|
| 頻寬 Bandwidth | 鏈路最大容量 | bps | 公路車道數 |
| 吞吐量 Throughput | 實際成功傳輸速率 | bps | 單位時間通過的車 |
| 延遲 Latency | 資料到達所需時間 | ms | 單程行駛時間 |
| 抖動 Jitter | 延遲的波動 | ms | 行駛時間的穩定性 |
| 丟包率 Loss | 丟失包的比例 | % | 事故率 |
| Goodput | 有效資料(不含頭/重傳) | bps | 實際運到的貨物 |
吞吐量 vs 頻寬 vs 延遲的區別
常見問題
為什麼速度只有套餐一半?
開銷、競爭和 TCP 慢啟動會讓實際吞吐率遠低於線速。
Mbps 還是 MB/s?
運營商用 Mbps(位元);檔案傳輸顯示 MB/s(位元組)。除以 8 可比較。
Wi-Fi 能達到乙太網路吞吐嗎?
通常不能;射頻干擾與半雙工空口會降低 Wi-Fi 吞吐。
怎麼測真實吞吐量?
用 iperf3(命令列)在兩端對打,能同時測 TCP 和 UDP,還能指定視窗大小、併發流數;用 speedtest.net 測網際網路出口頻寬;用 dd + scp 測磁碟到磁碟的實際傳輸速率。測的時候要注意:① 單向測還是雙向測;② 測試時長至少 30 秒(避開 TCP 慢啟動階段);③ 多次測試取中位數;④ 排除其他流量干擾。UDP 測試還要關注抖動和丟包。
為什麼千兆網路複製檔案只有 40 MB/s?
320 Mbps 左右(40 MB/s)通常是**磁碟瓶頸**而非網路瓶頸。機械硬碟順序讀寫約 100–150 MB/s,小檔案隨機讀寫可能只有 1–5 MB/s。SMB/CIFS 協議本身開銷也不小(SMB 1.0 尤其慢,建議用 SMB 3.0)。另外加密(VPN、SMB 簽名)、即時防毒掃描、以及大量小檔案的後設資料操作都會大幅拖慢。排查方法:先用 iperf3 確認網路本身能跑滿,再逐個排除磁碟、協議、軟體因素。
