iperf 测试网络带宽
2014-09-06 by dongnan
功能
Iperf
是一个网络性能测试工具。可以测试TCP
和UDP
带宽质量。Iperf可以报告带宽,延迟抖动和数据包丢失。利用Iperf这一特性,可以用来测试一些网络设备如路由器,防火墙,交换机等的性能。
TCP
- 测量网络带宽
- 报告
MSS/MTU
值的大小和观测值 - 支持
TCP
窗口值通过套接字缓冲 - 当
P
线程或Win32
线程可用时,支持多线程。客户端与服务端支持同时多重连接
UDP
- 客户端可以创建指定带宽的UDP流
- 测量丢包
- 测量延迟
- 支持多播
- 当
P
线程可用时,支持多线程。客户端与服务端支持同时多重连接
环境
操作系统: CentOS 6.5 amd64
软件版本: iperf3-3.0.6
安装
可以通过EPEL
直接安装 iperf3
yum install iperf3
使用
服务端
iperf3 -s -p 12345 -i 1
客户端
# TCP 测试
iperf3 -c 172.27.244.28 -p 12345 -t 60 iperf3 -c 172.27.244.28 -p 12345 -t 60 -P 2 iperf3 -c 172.27.244.28 -p 12345 -n 10G
# UDP 测试
iperf3 -c 172.27.244.28 -u -p 12345 -b 900M -t 5 iperf3 -c 172.27.244.28 -u -p 12345 -f b -t 5
参数
-s
服务器模式-p
设置端口号-i
设置每次报告之间的时间间隔,单位为秒-c
客户端模式,并指定服务器地址-t
测试时间,单位秒,默认10
秒-P
指定客户端使用的线程数-n
指定传输的字节数-u
UDP
模式-b
设置带宽 ,TCP
无限制,UDP
模式默认值是1 Mbit/sec
-f
格式化带宽数输出。
支持的格式有:
'b' = bits/sec 'B' = Bytes/sec
'k' = Kbits/sec 'K' = KBytes/sec
'm' = Mbits/sec 'M' = MBytes/sec
'g' = Gbits/sec 'G' = GBytes/sec
'a' = adaptive bits/sec 'A' = adaptive Bytes/sec
自适应格式是kilo-
和mega-
二者之一。除了带宽之外的字段都输出为字节,除非指定输出的格式,默认的参数是a
。
注意:
- 在计算字节
byte
时,Kilo = 1024
,Mega = 1024^2
,Giga =1024^3
。 - 通常在网络中,
Kilo = 1000
,Mega = 1000^2
,and Giga = 1000^3
,所以,Iperf
也按此来计算比特(位)。
举个栗子
环境描述
服务端
磁盘: 300GB SAS 15K * 6块
Raid: Dell Perc6i /256MB Cache/级别 10/条带 1MB/Write Back
CPU: XEON E5405 * 2颗,共8核心
内存: 16GB
网络: BCM 5709(GB) * 4块绑定,模式0
操作系统: CentOS 6.5 amd64
客户端
磁盘: 1TB SAS 7.2K * 4块
Raid: Dell Perc6i /256MB Cache/级别 5/条带 1MB/Write Back
CPU: XEON E5505 * 1颗,共2核心
内存: 16GB
网络: BCM 5716(GB) * 2块绑定,模式0
操作系统: CentOS 6.5 amd64
软件:NFSv4
服务端
# 执行命令
iperf3 -s -p 12345
Zabbix 流量图
客户端
# 执行命令
iperf3 -c 172.27.244.28 -p 12345 -t 600
Zabbix 流量图
参考
网络性能测试工具iperf详细使用图文教程