emmoblin.github.com
分类: LINUX
2008-11-17 09:15:45
Iperf 是一个 TCP/IP 和 UDP/IP 的性能测量工具,能够提供网络吞吐率信息,以及震动、丢包率、最大段和最大传输单元大小等统计信息;从而能够帮助我们测试网络性能,定位网络瓶颈。
参数说明
-s 以server模式启动,eg:iperf -s
-c 以client模式启动,host是server端地址,eg:iperf -c 222.35.11.23
通用参数
-f [k|m|K|M] 分别表示以Kbits, Mbits, KBytes, MBytes显示报告,默认以Mbits为单位,eg:iperf -c 222.35.11.23 -f K
-i sec 以秒为单位显示报告间隔,eg:iperf -c 222.35.11.23 -i 2
iperf是client端向server端发送数据
server端显示的是接收速率,最好加i参数,进行速率跟踪
client 显示的是发送速率
server 显示接收速率
-l 缓冲区大小,默认是8KB,eg:iperf -c 222.35.11.23 -l 16
可以使用不同的包长,进行测试
-m 显示tcp最大mtu值
-o 将报告和错误信息输出到文件eg:iperf -c 222.35.11.23 -o c:\iperflog.txt
-p 指定服务器端使用的端口或客户端所连接的端口eg:iperf -s -p 9999;iperf -c 222.35.11.23 -p 9999
-u 使用udp协议
测试htb的时候最好用udp,udp通信开销小,测试的带宽更准确
-w 指定TCP窗口大小,默认是8KB
如果窗口太小,有可能丢包
-B 绑定一个主机地址或接口(当主机有多个地址或接口时使用该参数)
-C 兼容旧版本(当server端和client端版本不一样时使用)
-M 设定TCP数据包的最大mtu值
-N 设定TCP不延时
-V 传输ipv6数据包
server专用参数
-D 以服务方式运行ipserf,eg:iperf -s -D
-R 停止iperf服务,针对-D,eg:iperf -s -R
client端专用参数
-d 同时进行双向传输测试
-n 指定传输的字节数,eg:iperf -c 222.35.11.23 -n 100000
-r 单独进行双向传输测试
-b 指定发送带宽,默认是1Mbit/s
在测试qos的时候,这是最有用的参数。
-t 测试时间,默认10秒,eg:iperf -c 222.35.11.23 -t 5
默认是10s
-F 指定需要传输的文件
-T 指定ttl值
小小的天!2008-11-30 10:42:50
您好,我是个新手,有些地方不时很明白。如果您有时间的话,希望您能指导一下: 我这里在做测试,测试UDP是这样测的: 服务器端:iperf -s -p23456 -u -D 然后客户端执行:iperf -c hostIP -i 5 -p 23456 -u -b 600M -t 1200 可是相对应的,测试TCP时: 服务器端:iperf -s -p23456 --t -D 服务器端的命令不知道怎么写,写成这样: iperf -c hostIP -i 5 -p 23456 -t -b 600M -t 1200 是不行的,我理解着如果“iperf -c hostIP -i 5 -p 23456 -u -b 600M -t 1200”不加其中的-u的话,应该默认使用TCP协议,是这样吗?另外在测试TCP时不能使用-b参数来指定带宽,按照手册上所讲,-b参数仅支持UDP协议,这样的话,如何达到指定测试带宽的目的呢? 按照上面的提示,我使用的是: iperf -c xxx.xxx.xxx.xxx -i 2 -l 16K -p 23456 -n 44800 -t 180