********版權聲明:本文爲博主原創文章,未經博主允許不得轉載。*********
一、問題概述:
在使用的系統中,使用無線網絡出現自動斷開、速度較慢等問題,爲了分析該問題,故研究了iperf。
二、設計分析:
1.使用iperf蒐集無線網卡一段時間內的傳輸數據。
2.通過sed命令對數據進行分析處理,得到可以繪圖的數據。
3.使用gnuplotting工具將數據繪製成曲線,可以直觀看出網絡速度曲線圖。
根據以上分析,故採取方式如下:
1. 無線網絡是否持續聯通:因爲TCP一般不丟包, 一旦丟包可以認爲網絡不穩或斷開, 而UDP本身丟包率高, 所以判斷起來稍微複雜。
2. 無線網絡速度是否正常:判斷平均速率即可, 然後對比是否接近預期值(不同型號的網卡會不同), 此外TCP可以自動判斷最大吞吐量, 而UDP需要手動設置 bandwidth(default 1 Mbit/sec)
3 無線網絡速度是否穩定:需要判斷曲線是否平穩,用gnuplotting處理。
三、使用iperf蒐集數據:
【測試方法】:
本次測試採取的TCP傳輸模式。
【測試硬件】:
2個臺式機(1臺爲server,1臺爲測試機),1臺無線路由器。
server:連接有線網絡。
client:被測試機,輪循更換安裝指定網卡進行測試,該系統連接路由器測試ssid。
【測試命令】:
TCP:
server:
iperf3 -s -f m #-s代表服務端,-f m表示單位統一爲
client:
iperf3 -c 10.0.4.1 -f m -t 72000 -i 5 | tee tcpc-w-****.log #-c代表客戶端,-t代表時常爲2h,-i代表返回間隔爲5s。tee代表將標準輸出存儲至後面的log文件內。
四、使用sed處理數據:
1.獲取平均值:
cat tcpc-w-****.log | grep "^-" -A 3
2.獲取作圖數據:
sed -n '/sec/p' tcpc-w-****.log | sed -n '/KBytes/p' |sed -n 's/.*-//p' | sed -n 's/Mbits.*//p' | sed -n 's/sec .*Bytes//p' >>tcpc-w-****.data
五、使用gnuplotting繪圖:
gnuplot> set title 'tcpc-w-AR9462'
gnuplot> set xlabel 'Time(sec)'
gnuplot> set ylabel 'Bandwidth(Mbits/sec)'
gnuplot> set xtics 1000.0
gnuplot> set ytics 10.0
gnuplot> set xrange [0:7500]
gnuplot> set yrange [-40:60]
gnuplot> plot 'tcpc-w-****.data' w l lt 3 lw 2
六、大師推薦:
日誌文件命令行處理的話,推薦zcat(如果使用的是gzip壓縮的日誌文件) + sort + uniq + awk,還有grep。
gnuplot有一本英文的書:http://www.salttiger.com/gnuplot-in-action-2nd-edition/。推薦一個不錯的網站,http://www.gnuplotting.org/
七、資料引用:
iperf資料:
http://blog.csdn.net/gl1987807/article/details/40506197
http://www.open-open.com/lib/view/open1418022081620.html
GNUPLOT資料:
http://blog.csdn.net/liyuanbhu/article/details/8502383
http://linux.chinaunix.net/techdoc/develop/2009/07/21/1125242.shtml