linux测试带宽命令,Linux服务器网络带宽测试iperf
必须先运行iperf server
iperf -s -i 2
客户端
iperf -c 服务端IP地址

iperf原理解析

iperf工具可以用来测量TCP或者是UDP的网络吞吐量,即bandwidth(带宽)测试。 

iPerf的主要目标是帮助调整特定路径上的TCP连接。 众所周知,TCP最基本的调整问题是调整TCP窗口大小,它控制在任何一点在网络中可以有多少数据。如果它太小,发送者将会在一段时间内处于空闲状态,从而影响发送TCP的性能。TCP窗口大小的理论值是:瓶颈带宽与往返延时的乘积,即:

bottleneck bandwidth * round trip time

例如瓶颈链路是45 Mbit/sec,使用ping命令测量到的往返时延是42ms。那么TCP窗口的理论值是

45 Mbit/sec * 42 ms = (45e6) * (42e-3) = 1890000 bits= 230 KByte

在实际测试中,可以以计算得到的TCP窗口为基准,在这个值(如上面为230KByte)的基础上,升高或者降低TCP窗口大小,可以得到一个性能的提升。   带宽测试一般来说采用UDP模式测试,因为在UDP模式下能测出极限带宽、路径时延、丢包率,这些测试项会在带宽测试报告中打印出来。

在进行测试时,先以链路理论带宽作为数据发送速率进行测试,例如,从客户端到服务器之间的链路的理论带宽为1000Mbps,先用 -b 1000M进行测试,然后根据测试结果(包括实际带宽,时延抖动和丢包率),再以实际带宽作为数据发送速率进行测试,会发现时延抖动和丢包率比第一次好很多,重复测试几次,就能得出稳定的实际带宽。

iperf是基于server-client模式工作的,因此,要使用iperf测试带宽,需要建立一个服务端(用于丢弃流量)和一个客户端(用于产生流量)。

iperf服务端或者是客户端,都是使用的同一个命令,不过是启动命令的选项不同而已。

1. iperf服务启动方式

先看下服务端和客户端的启动方式:

服务端

iperf -s

客户端

iperf -c 服务端IP地址

注意:iperf默认测试的是TCP协议的带宽,如果需要测试UDP的带宽,则需要加上-u选项

2. iperf常用选项

  iperf选项分为 通用选项、服务端特定选项以及客户端特定选项

通用选项

-f <kmKM>    报告输出格式。 [kmKM]   format to report: Kbits, Mbits, KBytes, MBytes

-i <sec>    在周期性报告带宽之间暂停n秒。如周期是10s,则-i指定为2,则每隔2秒报告一次带宽测试情况,则共计报告5次

-p    设置服务端监听的端口,默认是5001

-u    使用UDP协议测试

-w n<K/M>   指定TCP窗口大小

-m    输出MTU大小

-M    设置MTU大小

-o <filename>    结果输出至文件

服务端选项

-s    iperf服务器模式

-d    以后台模式运行服务端

-U    运行一个单一线程的UDP模式

客户端选项

-b , --bandwidth n[KM]    指定客户端通过UDP协议发送数据的带宽(bit/s)。默认是1Mbit/s

-c <ServerIP>    以客户端模式运行iperf,并且连接至服务端主机ServerIP。 eg:  iperf -c <server_ip>

-d    双向测试

-t    指定iperf带宽测试时间,默认是10s。  eg:  iperf -c <server_ip> -t 20

-P    指定客户端并发线程数,默认只运行一个线程。 eg,指定3个线程 : iperf -c <server_ip> -P 3

-T    指定TTL值

3.实例

master 为服务端

minion 为客户端

注意:必须先运行iperf server

2秒返回一次带宽测试报告

# iperf -c 120.24.25.65

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

Client connecting to 120.24.25.65, TCP port 5001

TCP window size: 19.3 KByte (default)

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

[  3] local 113.58.113.136 port 49959 connected with 120.24.25.65 port 5001

[ ID] Interval       Transfer     Bandwidth

[  3]  0.0-10.3 sec  3.12 MBytes  2.54 Mbits/sec

[root@iZwz96l7gxttha3j1hk494Z ~]# iperf -s -i 2

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

Server listening on TCP port 5001

TCP window size: 85.3 KByte (default)

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

[  4] local 113.58.113.136 port 5001 connected with 120.24.25.65 port 56238

[ ID] Interval       Transfer     Bandwidth

[  4]  0.0- 2.0 sec   792 KBytes  3.24 Mbits/sec

[  4]  2.0- 4.0 sec   561 KBytes  2.30 Mbits/sec

[  4]  4.0- 6.0 sec   513 KBytes  2.10 Mbits/sec

[  4]  6.0- 8.0 sec   609 KBytes  2.50 Mbits/sec

[  4]  8.0-10.0 sec   529 KBytes  2.17 Mbits/sec

[  4]  0.0-11.3 sec  3.25 MBytes  2.41 Mbits/sec

最新文章

  1. Atitit sql计划任务与查询优化器--统计信息模块
  2. HDU——PKU题目分类
  3. PHP会话处理相关函数介绍
  4. 对石家庄铁道大学网站首页进行UI分析
  5. Java Convert String &amp; Int
  6. Python编码设置
  7. URAL 1586 Threeprime Numbers(DP)
  8. C语言常见命名规范
  9. 避免subList/subString陷阱
  10. Android优秀github项目整理
  11. 【zabbix教程系列】七、自动注册(Windows)
  12. Classy Numbers
  13. 建立一个单链表,并删除链表中值为W的元素
  14. win2008 C盘清理
  15. 前端的重要部分js
  16. Leetcode分类总结(Greedy)
  17. memset详解 设置无穷大INF
  18. ASP 基础一
  19. 关于array.sort(array,array)
  20. 获取String类型汉字乱码,如何进行编码

热门文章

  1. Timer应用之Interval优化
  2. 对Yii2中 yii\web\User的理解,和自建的app\models\User(基础版),frontend\models\User的应用原理
  3. PHP配置xcache缓存扩展
  4. ibatitsnet 因为会Dao.config 配置数据版本太低导致的问题
  5. HDFS体系结构(NameNode、DataNode详解)
  6. MySQL命令:创建数据库、插入数据
  7. 在mysql Navicat中怎样设置ID自动递增
  8. 【深入理解javascript】原型
  9. Ghost硬盘对拷
  10. 7.4 Models -- Pushing Records into the Store