分类: LINUX

2013-06-17 18:52:21

 
  Iperf是一个网络性能测试工具。可以测试TCP和UDP带宽质量,可以测量最大TCP带宽,具有多种参数和UDP特性,可以报告带宽,延迟抖动和数据包丢失

因为产品上确定要要用的PHY是千M的,但模块接口又定义死了,只能用到100M。所以想测试下割掉几根线试下100M可行不。在测之前先测下千M模式下到底性能怎么样,之前别人一直说这我手头上这颗ARM根本上不了千M,虽然他标称的是可以支持千M。一准备工作做好了,开始。

我们使用的工具是iperf这个工具我是自己编译的。现在将我的过程写下来。iperf下载地址
先编译PC端工具:
1.解压源码:
$ tar xzvf iperf-2.0.5.tar.gz
2.进入源码目录
$ cd iperf-2.0.5
3.配置源码 编译PC下的不用指定参数,用默认的即可
$  ./configure
4.编译 后面的-j4不是必须的。
$ make -j4
5.安装 这里要注意要用管理员权限
# make install

$ iperf -s 就可以启动服务端。

ARM端:
1.清理源码(就是刚才编译过的源码)
$ make distclean
2.设置环境变量 (就是你的ARM交叉编译工具链,根据自己的实际情况改)
$ export PATH=/home/gavin/ti-sdk-am335x-evm-05.06.00.00/linux-devkit/bin:$PATH
3.配置 指定主机为ARM g++编译器和gcc 这里根据自己的实际情况改
$ ./configure --host=arm CXX=arm-arago-linux-gnueabi-g++ CC=arm-arago-linux-gnueabi-gcc
4.修改源码目录下面的config.h(没配置之前是没有这个文件的),注释掉 #define malloc rpl_malloc
5.编译
$ make -j4
在iperf-2.0.5/src/下会生成iperf这个文件,这个就是我们需要的。将这个文件拷到ARM的文件系统中去。这样PC端和ARM端的都有了。

至于iperf的使用,就不多介绍了,直接在网上copy一段下来。

Iperf使用方法与参数说明

参数说明

-s 以server模式启动,eg:iperf -s 上行测试

-c host以client模式启动,host是server端地址,eg:iperf -c 10.0.0.2   下行测试

通用参数

-f [kmKM] 分别表示以Kbits, Mbits, KBytes, MBytes显示报告,默认以Mbits为单位,eg:iperf -c 10.0.0.2 -f K

-i sec 以秒为单位显示报告间隔,eg:iperf -c 10.0.0.2 -i 2

-l 缓冲区大小,默认是8KB,eg:iperf -c 10.0.0.2 -l 16

-m 显示tcp最大mtu值

-o 将报告和错误信息输出到文件eg:iperf -c 10.0.0.2 -o ciperflog.txt

-p 指定服务器端使用的端口或客户端所连接的端口eg:iperf -s -p 9999;iperf -c 10.0.0.2 -p 9999

-u 使用udp协议

-w 指定TCP窗口大小,默认是8KB

-B 绑定一个主机地址或接口(当主机有多个地址或接口时使用该参数)

-b 指定带宽例如120M

-C 兼容旧版本(当server端和client端版本不一样时使用)

-M 设定TCP数据包的最大mtu值

-N 设定TCP不延时

-V 传输ipv6数据包

server专用参数

-D 以服务方式运行iperf,eg:iperf -s -D

-R 停止iperf服务,针对-D,eg:iperf -s -R

client端专用参数

-d 同时进行双向传输测试

-n 指定传输的字节数,eg:iperf -c 10.0.0.2 -n 100000

-r 单独进行双向传输测试

-t 测试时间,默认10秒,eg:iperf -c 10.0.0.2 -t 5

-F 指定需要传输的文件

-T 指定ttl值

应用实例

使用 iperf -s 命令将 Iperf 启动为 server 模式,在客户机上使用 iperf -c启动client模式。

iperf –s

------------------------------------------------------------

Server listening on TCP port 5001

TCP window size: 8.00 KByte (default)

------------------------------------------------------------

iperf -c 10.0.0.2

上面使用服务端和客户端的默认设置进行测试

iperf -s -w 300K

------------------------------------------------------------

Server listening on TCP port 5001

TCP window size:  300 KByte

------------------------------------------------------------

iperf -c 10.0.0.2-f K -i 2 -w 300K

设定报告间隔为2秒,服务器端和客户端的TCP窗口都开到300KB

iperf -c 10.0.0.2 -f K -i 2 -w 300K –n 1000000

测试传输约1MB数据

iperf -c 10.0.0.2 -f K -i 2 -w 300K –t 36

测试持续36秒

iperf -c 10.0.0.2 -f K -i 2 -w 300K -n 10400000 –d

测试双向的传输

iperf -c 10.0.0.2 -f K -i 2 -w 300K –u

UDP测试

其中 -i 参数的含义是周期性报告的时间间隔(interval),单位为秒;在上面的例子中,表示每隔2秒报告一次带宽等信息。

先在PC端启动$ iperf -s

再在ARM端执行
$ iperf -c 10.0.0.2 -f K -i 2 -w 300K -n 10000000 -t 180

执行完后,在服务器端会打印结果如下:

这能不坑爹吗,号秒千M,跑出来是270M。

我上面这些测试数据都是通过路由器来测的,我路由器是千M的。

iperf测试网络性能的更多相关文章

  1. Android IOS WebRTC 音视频开发总结(五六)-- 如何测试网络性能?

    本文主要介绍如何测试网络性能,文章来自博客园RTC.Blacker,欢迎关注微信公众号blacker,更多详见www.rtc.help 网络性能直接决定了视频通话效果,比如qq,很多时候我们我们觉得通 ...

  2. 使用netperf测试网络性能

    1.安装netperf 1)获取netperf安装包 netperf-2.7.0.tar.bz2 2)解压到本地目录 3)进入netperf-2.7.0,执行:./configure 4)编译执行:m ...

  3. iperf测试网络带宽

    http://blog.chinaaet.com/telantan/p/30901 https://boke.wsfnk.com/archives/288.html https://www.ibm.c ...

  4. iperf点对点网络性能测试工具

    什么是Iperf?Iperf 是一个网络性能测试工具.Iperf可以测试TCP和UDP带宽质量.Iperf可以测量最大TCP带宽,具有多种参数和UDP特性.Iperf可以报告带宽,延迟抖动和数据包丢失 ...

  5. Linux网络性能评估工具iperf 、CHARIOT测试网络吞吐量

    网络性能评估主要是监测网络带宽的使用率,将网络带宽利用最大化是保证网络性能的基础,但是由于网络设计不合理.网络存在安全漏洞等原因,都会导致网络带宽利用率不高.要找到网络带宽利用率不高的原因,就需要对网 ...

  6. [转]网络性能评估工具Iperf详解(可测丢包率)

    原文链接:安全运维之:网络性能评估工具Iperf详解:http://os.51cto.com/art/201410/454889.htm 参考博文:http://linoxide.com/monito ...

  7. iperf 一个测试网络吞吐的工具

    在分布式文件系统开发和测试过程中,我们经常需要测试真实的网络带宽,来进行估测分布式系统的传输性能,所以我们要对现有的网络进行测试:Iperf 是一个网络性能测试工具.IPerf可以测试最大的TCP和U ...

  8. libgo协程库:网络性能完爆ASIO异步模型(-O3测试)

    在purecpp社区的github组织中有一个协程库:https://github.com/yyzybb537/libgo 近日有用户找到我,想要了解一下libgo库在网络方面的性能,于是选取已入选标 ...

  9. 使用iperf测试网卡吞吐性能

    原 使用iperf测试网卡吞吐性能 2018年12月17日 12:38:41 lancewoo 阅读数:138   首先配置待测试的两个网卡的网络地址到同一网段,保证ping对方的IP地址时可以通.两 ...

随机推荐

  1. Beat(2/7)

    目录 摘要 团队部分 个人部分 摘要 队名:小白吃 组长博客:hjj 作业博客:beta冲刺(2/7) 团队部分 后敬甲(组长) 过去两天完成了哪些任务 整理博客 做了点商家数据表格 接下来的计划 做 ...

  2. 1001 A+B

    代码链接 PDF链接 首先要说的是这道题的难点是如何把数字输出加入逗号,毕竟数据范围并没有超过Long.当然这个难点也不是问题,将数字转为字符串,C中就有这样的函数,然后再用 %3==0 这样来控制输 ...

  3. 【搜索】POJ-3009 DFS+回溯

    一.题目 Description On Planet MM-21, after their Olympic games this year, curling is getting popular. B ...

  4. wcf服务查看工具

    文章:接口测试工具soapUI(一) 文章:VS自带WCF测试客户端简单介绍

  5. java 对象和基本数据类型 “==”区别

    “==”比较的是地址,牢记.1.对象.integer 是对象 Integer i1 = 20; Integer i2 = 20 ; System.out.println(i1 == i2); // t ...

  6. SQL Server 2008 存储过程示例

    出处:http://www.jb51.net/article/54730.htm --有输入参数的存储过程-- create proc GetComment (@commentid int) as s ...

  7. TCP系列52—拥塞控制—15、前向重传与RACK重传拥塞控制处理对比

    一.概述 这里主要简单分析一个丢包重传并恢复的场景,通过不同的设置让这个相同的场景分别触发RACK重传和前向重传,通过对比说明以下问题: Forward Retransmit可以产生只有重传标记的数据 ...

  8. RabbitMQ使用笔记

    一.安装 1.下载所需安装包 下载服务端(原因在于RabbitMQ服务端代码是使用并发式语言erlang编写的):http://www.rabbitmq.com/install-windows.htm ...

  9. sublime很常用快捷方式演示

                    来自为知笔记(Wiz)

  10. 对一致性Hash算法及java实现(转)

    一致性Hash算法 关于一致性Hash算法,在我之前的博文中已经有多次提到了,MemCache超详细解读一文中"一致性Hash算法"部分,对于为什么要使用一致性Hash算法.一致性 ...