- Iperf 是一個 TCP/IP 和 UDP/IP 的性能測量工具,能夠提供網路吞吐率信息,以及震動、丟包率、最大段和最大傳輸單元大小等統計信息;從而能夠幫助我們測試網路性能,定位網路瓶頸
- 前面幾週其實就有用到了,mininet 裡面自帶的工具,所以不需要另外安裝
-s
:主機以 Server 模式啟動-c
:主機以 Client 模式啟動
- 範例:假設有兩台主機 h1 及 h2,h1 當作 Server、h2 當作 Client,從 Client 端到 Server 端做網路頻寬測試
- Iperf Client 端連接 Iperf 伺服器的 TCP 默認端口為 5001,若需要更改埠號可以使用
-p
參數做修改 - 下圖結果顯示的頻寬是從 Client 端到 Server 端之間的頻寬,可以從圖中得知 xterm h1 及 xterm h2 Banwidth 值是一樣的
- xterm h1:
iperf -s
- xterm h2:
iperf -c 10.0.0.1
- xterm h1:
iperf -s
- xterm h2:
iperf -c 10.0.0.1 -r
- gnuplot 是一套跨平臺的數學繪圖自由軟體。使用命令列介面,可以繪製數學函數圖形,也可以從純文字檔讀入簡單格式的座標資料,繪製統計圖表等等
- 它可以提供多種輸出格式,例如 PNG,SVG,PS,HPGL,供文書處理、簡報、試算表使用。它並不是統計軟體或數學軟體
- 初始化 mininet 最小拓樸結構:
mn
- 在 mininet 終端打開 h1、h2 主機 xterm:
xterm h1 h2
- 將 h1 主機當作 Server 端,並將結果保存到文件 result 中:
iperf -s -i 1 > result
- 將 h2 主機當作 Client 端,連接到 h1(IP 為 10.0.0.1):
iperf -c 10.0.0.1
- 經過 10 秒後,在 h2 自動生成了文件 result,儲存此次連接的訊息,在 h2 終端中查看 result 內容:
cat result
- 將 result 中我們感興趣的訊息提取到新的文件 new_result 中:
cat result | grep sec | head -10 | tr - " " | awk '{print $4,$8}' > new_result
- 查看 new_result 內容:
cat new_result
- 接下來使用 gnuplot 畫圖(如果尚未安裝 gnuplot,可以使用以下指令安裝:
sudo apt-get install gnuplot-x11
) - 在 xterm h2 進入 gnuplot:
gnuplot
- 在 gnuplot 命令行中,將剛才得到的文件 new_result 畫圖:
plot "new_result" title "tcp flow" with linespoints
- 將縱座標範圍改爲 39-42,添加橫縱座標標籤,並重新作圖
set yrang [39:42] set xlabel "time (sec)" set ylabel "tcp throughput (Mbps)" replot