使用iperf測試網路效能
最近在測試區域網下HTTP服務效能,伺服器用的是萬兆網絡卡,但是吞吐量到達100M/s就上不去了,懷疑和網路環境有關係,然後上網搜尋發現了一個很好用的網路效能測試工具iperf,下面的引數可以用來測試網路頻寬。
服務端
iperf3 -s -p 5001 -i 2
客戶端
iperf3 -c 127.0.0.1(伺服器IP) -P 4 -t 30 -i 2 -p 5001
iPerf 工作模式和引數 iPerf 的工作時需要指定 Server 模式或 Client 模式,通過不同的引數來區別(-s 和-c)。iPerf3 所支援的功能也都通過設定不同的引數來實現。iPerf 的引數分為 3 類:通用引數,Server 端引數,Client 端引數。通用引數為 Server 端和 Client 端都可以使用的引數。以下是 iPerf 3.1.2 支援的所有引數: -p, --port #,Server 端監聽、Client 端連線的埠號; -f, --format [kmgKMG],報告中所用的資料單位,Kbits, Mbits, KBytes, Mbytes; -i, --interval #,每次報告的間隔,單位為秒; -F, --file name,測試所用檔案的檔名。如果使用在 Client 端,傳送該檔案用作測試;如果使用在 Server 端,則是將資料寫入該檔案,而不是丟棄; -A, --affinity n/n,m,設定 CPU 親和力; -B, --bind ,繫結指定的網絡卡介面; -V, --verbose,執行時輸出更多細節; -J, --json,執行時以 JSON 格式輸出結果; –logfile f,輸出到檔案; -d, --debug,以 debug 模式輸出結果; -v, --version,顯示版本資訊並退出; -h, --help,顯示幫助資訊並退出。 Server 端引數: -s, --server,以 Server 模式執行; -D, --daemon,在後臺以守護程序執行; -I, --pidfile file,指定 pid 檔案; -1, --one-off,只接受 1 次來自 Client 端的測試,然後退出。 Client 端引數 -c, --client ,以 Client 模式執行,並指定 Server 端的地址; -u, --udp,以 UDP 協議進行測試; -b, --bandwidth #[KMG][/#],限制測試頻寬。UDP 預設為 1Mbit/秒,TCP 預設無限制; -t, --time #,以時間為測試結束條件進行測試,預設為 10 秒; -n, --bytes #[KMG],以資料傳輸大小為測試結束條件進行測試; -k, --blockcount #[KMG],以傳輸資料包數量為測試結束條件進行測試; -l, --len #[KMG],讀寫緩衝區的長度,TCP 預設為 128K,UDP 預設為 8K; –cport ,指定 Client 端執行所使用的 TCP 或 UDP 埠,預設為臨時埠; -P, --parallel #,測試資料流併發數量; -R, --reverse,反向模式執行(Server 端傳送,Client 端接收); -w, --window #[KMG],設定套接字緩衝區大小,TCP 模式下為視窗大小; -C, --congestion ,設定 TCP 擁塞控制演算法(僅支援 Linux 和 FreeBSD ); -M, --set-mss #,設定 TCP/SCTP 最大分段長度(MSS,MTU 減 40 位元組); -N, --no-delay,設定 TCP/SCTP no delay,遮蔽 Nagle 演算法; -4, --version4,僅使用 IPv4; -6, --version6,僅使用 IPv6; -S, --tos N,設定 IP 服務型別(TOS,Type Of Service); -L, --flowlabel N,設定 IPv6 流標籤(僅支援 Linux); -Z, --zerocopy,使用 “zero copy”(零拷貝)方法傳送資料; -O, --omit N,忽略前 n 秒的測試; -T, --title str,設定每行測試結果的字首; –get-server-output,從 Server 端獲取測試結果; –udp-counters-64bit,在 UDP 測試包中使用 64 位計數器(防止計數器溢位)。