简介:
Iperf是一个网络性能测试工具。可以测试TCP和UDP带宽质量,可以测量最大TCP带宽,具有多种参数和UDP特性,可以报告带宽,延迟抖动和数据包丢失。
Iperf在Linux和windows平台均有二进制版本供自由使用
安装:
#安装好软件仓库包
1 . 用yum软件仓库安装
yum -y install epel-release
yum install iperf -y
参数说明:
-s 以server模式启动。#iperf -s
-c host以client模式启动。host是server端地址。#iperf -c serverip
通用参数:
-f [kmKM] 分别表示以Kbits, Mbits, KBytes, MBytes显示报告,默认以Mbits为单位,#iperf -c 192.168.100.6 -f K
-i sec 以秒为单位显示报告间隔,#iperf -c 192.168.100.6 -i 2
-l 缓冲区大小,默认是8KB,#iperf -c 192.168.100.6 -l 64
-m 显示tcp最大mtu值
-o 将报告和错误信息输出到文件#iperf -c 192.168.100.6 -o ciperflog.txt
-p 指定服务器端使用的端口或客户端所连接的端口#iperf -s -p 5001;iperf -c 192.168.100.55 -p 5001
-u 使用udp协议
-w 指定TCP窗口大小,默认是8KB
-B 绑定一个主机地址或接口(当主机有多个地址或接口时使用该参数)
-C 兼容旧版本(当server端和client端版本不一样时使用)
-M 设定TCP数据包的最大mtu值
-N 设定TCP不延时
-V 传输ipv6数据包
server专用参数:
-D 以服务方式运行。#iperf -s -D
-R 停止iperf服务。针对-D,#iperf -s -R
client端专用参数:
-d 同时进行双向传输测试
-n 指定传输的字节数,#iperf -c 192.168.100.6 -n 1024000
-r 单独进行双向传输测试
-t 测试时间,默认20秒,#iperf -c 192.168.100.6 -t 5
-F 指定需要传输的文件
-T 指定ttl值
测量服务器带宽
使用iperf
工具测试服务器带宽,它分为服务端与客户端,两边都要安装iperf
工具。在Linux
通过yum
或者apt-get
即可直接安装。
服务端(假设IP
为192.168.1.11
)运行iperf
服务:
#iperf -s
------------------------------------------------------------
Server listening on TCP port 5001 TCP window size: 85.3 KByte (default)
这是一台上下行带宽都接近100Mbits/sec
的服务器,实测数值不应该与该数值偏离太远。
客户端
测试上行和下行带宽
$iperf -c 192.168.1.11 -t 60 -d
------------------------------------------------------------
Server listening on TCP port 5001 TCP window size: 85.3 KByte (default) ------------------------------------------------------------ ------------------------------------------------------------ Client connecting to 45.32.64.187, TCP port 5001 TCP window size: 197 KByte (default) ------------------------------------------------------------ [ 4] local 104.250.144.8 port 50040 connected with 106.14.26.11 port 5001 [ 5] local 104.250.144.8 port 5001 connected with 106.14.26.11 port 34386 [ ID] Interval Transfer Bandwidth [ 4] 0.0-60.0 sec 658 MBytes 92.0 Mbits/sec #上行带宽 [ 5] 0.0-60.4 sec 628 MBytes 87.4 Mbits/sec #下行带宽
从测试结果看,上行带宽为92.0Mbits/sec
, 下行带宽为87.2Mbits/sec
测量延迟、抖动和丢包率
指标
- 带宽:与服务商提供的最大带宽接近
- 延迟:
<100ms
- 抖动:
<20ms
- 丢包率:
<1%
延迟,抖动和丢包率,直接使用ping
做测试即可。如果想测量这个值,建议抓100
个包测试:
$ ping -c 100 www.baidu.com PING www.a.shifen.com (163.177.151.109): 56 data bytes 64 bytes from 163.177.151.109: icmp_seq=0 ttl=55 time=26.639 ms 64 bytes from 163.177.151.109: icmp_seq=1 ttl=55 time=24.329 ms 64 bytes from 163.177.151.109: icmp_seq=2 ttl=55 time=24.794 ms 64 bytes from 163.177.151.109: icmp_seq=3 ttl=55 time=22.709 ms 64 bytes from 163.177.151.109: icmp_seq=4 ttl=55 time=39.994 ms 64 bytes from 163.177.151.109: icmp_seq=5 ttl=55 time=50.786 ms 。。。省略 ^C --- www.a.shifen.com ping statistics --- 100 packets transmitted, 100 packets received, 0.0% packet loss #最后这个百分比就是丢 包率 round-trip min/avg/max/stddev = 21.505/26.743/50.786/6.613 ms #分别表示最小延迟、平均延迟、最大延迟、抖动(抖动就是延迟标准差)
根据上面的结果,我们得到结论:
延迟:26.743ms
抖动: 6.613ms
丢包率: 0.0%
符合指标要求,所以访问百度一定很快。(这里假设带宽是没问题的,测量到服务器的带宽需要服务器支持,所以是测量不了的)