********版权声明:本文为博主原创文章,未经博主允许不得转载。*********
一、问题概述:
在使用的系统中,使用无线网络出现自动断开、速度较慢等问题,为了分析该问题,故研究了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