跳转至

iperf 测试网络带宽


2014-09-06 by dongnan

功能

Iperf是一个网络性能测试工具。可以测试TCPUDP带宽质量。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 = 1024Mega = 1024^2,Giga = 1024^3
  • 通常在网络中,Kilo = 1000Mega = 1000^2and 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详细使用图文教程

回到页面顶部