Iperf法國的官網上面說,iperf 3與iperf 2的差異,主要是iperf 3之中,拿掉了Multi-Thread的部份。換言之,原先iperf 2可以用一個Server來服務好幾個Client,Iperf 3就是只能一個Server、一台Client來對接使用。誰比較可靠,這裡就不言而喻。
iPerf 是 Server/Client 來運作,通過不同的參數來區別(-s 和-c)。iPerf3 所支援的參數如下:
通用參數(Client/Server都可以適用):
- -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:顯示説明資訊。
- -s, --server:以 Server 模式執行。
- -D, --daemon:在後臺以守護進程執行。
- -I, --pidfile file:指定 pid 檔。
- -1, --one-off:只接受 1 次來自 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 位元數目器(防止計數器溢出)。
Server端比較簡單:
# iperf3 -s <Enter>
Client端:
# iperf3 -c 192.168.0.1 -u -t 360 -b 100m -S0x80 <Enter>
-u :UDP
-t 360:就是每個測試做360秒,六分鐘。
-b 100m:用100 mbps 的頻寬做UDP測試。
-S0x80:這個就有些複雜。解釋如下:
由於我通常要測 Multicasting Video,所以就設定這個參數為 -S0x80。其實這個參數與各家的Router的設計會有些關係。
-S 的參數是TOS (Type of Service),下面大致整理了一些常用的,但都只用來對於網路設備做特殊測試的時候,才需要使用:
測到目前為止,已經知道的一些問題:
1. Ubuntu 20 在一些舊筆電上面,UDP的速度,到了260Mbps就上不去了。後來改裝 14.04,速度曾回到正常的水準,UDP約可以到達960Mbps。
2. 網路線本身就會造成UDP掉包,就是用兩根線對接(我是用機房等級的CAT6線材,還加了屏障),目前還是看到許多問題,所以也許與PC的等級與網路卡的品質有些關係。這部份還會繼續測試,看能否找到完美的解決方案?
3. Iperf3 與 Iperf 2測出的結果真的不太一樣? 還是要深究,找出哪一個的數字比較準? 不過我想還是先排出PC硬體、驅動程式、作業系統的相關性。
1. Ubuntu 20 在一些舊筆電上面,UDP的速度,到了260Mbps就上不去了。後來改裝 14.04,速度曾回到正常的水準,UDP約可以到達960Mbps。
2. 網路線本身就會造成UDP掉包,就是用兩根線對接(我是用機房等級的CAT6線材,還加了屏障),目前還是看到許多問題,所以也許與PC的等級與網路卡的品質有些關係。這部份還會繼續測試,看能否找到完美的解決方案?
3. Iperf3 與 Iperf 2測出的結果真的不太一樣? 還是要深究,找出哪一個的數字比較準? 不過我想還是先排出PC硬體、驅動程式、作業系統的相關性。

沒有留言:
張貼留言