iperf3实践
The basic commands are the same for iperf and iperf3:
| Server: | |
| iperf/iperf3 -s | Start server on the default port |
| iperf -s -w 32M -D / iperf3 -s -D | Start server with larger TCP window, and in daemon mode |
| iperf -i1 -u -s -p 5003 / iperf3 -s -p 5003 | Start UDP server on port 5003, and give 1 sec interval reports |
| Client | |
| iperf/iperf3 -c remotehost -i 1 -t 30 | Run a 30 second tests, giving results every 1 second |
| iperff/iperf3 -c remotehost -i 1 -t 20 -r | Run a test from remotehost to localhost |
| iperf/iperf3 -c remotehost -i 1 -t 20 -w 32M -P 4 | Run a test with 4 parallel streams, and with a 32M TCP buffer |
| iperf/iperf3 -c remotehost -u -i 1 -b 200M | Run a 200 Mbps UDP test |
iperf3 adds a number of additional features. For example, the -i mode now reports TCP retransmit info (and is on by default), and the verbose mode now gives a lot of useful information on CPU usage, etc. Other new options include:
| Client: | |
| iperf3 -c remotehost -i.5 -0 2 | Run the test for 2 seconds before collecting results, to allow forTCP slowstart to finish. (Omit mode) |
| iperf3 -Z -c remotehost | Use the sendfile() system call for "Zero Copy" mode. This uses much less CPU. |
| iperf3 -c 192.168.12.12 -T s1 & iperf3 -c 192.168.12.13 -T s2 | Run tests to multiple interfaces at once, and label the lines to indicate which test is which |
| iperf3 -c remotehost -J | Output the results in JSON format for easy parsing. |
| iperf3 -A 4,4 -c remotehost | Set the CPU affinity for the sender,receiver (cores are numbered from 0). This has the same affect as doing 'numactl -C 4 iperf3'. |
|
iperf3 -c 10.20.1.20 -A2,2 -T "1" & ; iperf3 -c 10.20.1.20 -p 5400 -A3,3 -T "2" & |
Run 2 streams on 2 different cores, and label each using the "-T" flag. |
iperf3 thread model
In order to keep the code as simple and maintainable as possible, iperf3 is single threaded. This means that that you may be CPU-bound on some hosts, or on 40G/100G NICs. To run parallel stream iperf3 on mutiple cores, use the method shown in the table above.
实践:
[root@CentOS7 iperf-3.1.2]# iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.56.106, port 58465
[ 5] local 192.168.56.103 port 5201 connected to 192.168.56.106 port 58466
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-1.00 sec 49.9 MBytes 418 Mbits/sec
[ 5] 1.00-2.00 sec 175 MBytes 1.47 Gbits/sec
[ 5] 2.00-3.00 sec 148 MBytes 1.25 Gbits/sec
[ 5] 3.00-4.00 sec 164 MBytes 1.38 Gbits/sec
[ 5] 4.00-5.00 sec 234 MBytes 1.96 Gbits/sec
[ 5] 5.00-6.00 sec 227 MBytes 1.91 Gbits/sec
[ 5] 6.00-7.00 sec 222 MBytes 1.86 Gbits/sec
[ 5] 7.00-8.00 sec 169 MBytes 1.42 Gbits/sec
[ 5] 8.00-9.00 sec 143 MBytes 1.20 Gbits/sec
[ 5] 9.00-10.00 sec 226 MBytes 1.90 Gbits/sec
[ 5] 10.00-11.00 sec 189 MBytes 1.58 Gbits/sec
[ 5] 11.00-12.00 sec 101 MBytes 850 Mbits/sec
[ 5] 12.00-13.00 sec 188 MBytes 1.58 Gbits/sec
[ 5] 13.00-14.00 sec 207 MBytes 1.74 Gbits/sec
[ 5] 14.00-15.00 sec 215 MBytes 1.81 Gbits/sec
[ 5] 15.00-16.00 sec 218 MBytes 1.83 Gbits/sec
[ 5] 16.00-17.00 sec 217 MBytes 1.82 Gbits/sec
[ 5] 17.00-18.00 sec 217 MBytes 1.82 Gbits/sec
[ 5] 18.00-19.00 sec 169 MBytes 1.42 Gbits/sec
[ 5] 19.00-20.00 sec 230 MBytes 1.93 Gbits/sec
[ 5] 20.00-21.00 sec 228 MBytes 1.91 Gbits/sec
[ 5] 21.00-22.00 sec 220 MBytes 1.85 Gbits/sec
[ 5] 22.00-23.00 sec 227 MBytes 1.91 Gbits/sec
[ 5] 23.00-24.00 sec 231 MBytes 1.94 Gbits/sec
[ 5] 24.00-25.00 sec 232 MBytes 1.95 Gbits/sec
[ 5] 25.00-26.00 sec 146 MBytes 1.23 Gbits/sec
[ 5] 26.00-27.00 sec 200 MBytes 1.67 Gbits/sec
[ 5] 27.00-28.00 sec 180 MBytes 1.51 Gbits/sec
[ 5] 28.00-29.00 sec 176 MBytes 1.47 Gbits/sec
[ 5] 29.00-30.00 sec 170 MBytes 1.43 Gbits/sec
[ 5] 30.00-31.00 sec 217 MBytes 1.82 Gbits/sec
[ 5] 31.00-32.00 sec 215 MBytes 1.80 Gbits/sec
[ 5] 32.00-32.54 sec 116 MBytes 1.79 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-32.54 sec 0.00 Bytes 0.00 bits/sec sender
[ 5] 0.00-32.54 sec 6.12 GBytes 1.62 Gbits/sec receiver
FAQ:
Deprecated flags (currently no plans to support):
-d, --dualtest Do a bidirectional test simultaneously
-r, --tradeoff Do a bidirectional test individually
-T, --ttl time-to-live, for multicast (default 1)
-x, --reportexclude [CDMSV] exclude C(connection) D(data) M(multicast)
S(settings) V(server) reports
-y, --reportstyle C report as a Comma-Separated Values
iperf3实践的更多相关文章
- webp图片实践之路
最近,我们在项目中实践了webp图片,并且抽离出了工具模块,整合到了项目的基础模板中.传闻IOS10也将要支持webp,那么使用webp带来的性能提升将更加明显.估计在不久的将来,webp会成为标配. ...
- Hangfire项目实践分享
Hangfire项目实践分享 目录 Hangfire项目实践分享 目录 什么是Hangfire Hangfire基础 基于队列的任务处理(Fire-and-forget jobs) 延迟任务执行(De ...
- TDD在Unity3D游戏项目开发中的实践
0x00 前言 关于TDD测试驱动开发的文章已经有很多了,但是在游戏开发尤其是使用Unity3D开发游戏时,却听不到特别多关于TDD的声音.那么本文就来简单聊一聊TDD如何在U3D项目中使用以及如何使 ...
- Logstash实践: 分布式系统的日志监控
文/赵杰 2015.11.04 1. 前言 服务端日志你有多重视? 我们没有日志 有日志,但基本不去控制需要输出的内容 经常微调日志,只输出我们想看和有用的 经常监控日志,一方面帮助日志微调,一方面及 ...
- 【大型网站技术实践】初级篇:借助Nginx搭建反向代理服务器
一.反向代理:Web服务器的“经纪人” 1.1 反向代理初印象 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从 ...
- Windows平台分布式架构实践 - 负载均衡
概述 最近.NET的世界开始闹腾了,微软官方终于加入到了对.NET跨平台的支持,并且在不久的将来,我们在VS里面写的代码可能就可以通过Mono直接在Linux和Mac上运行.那么大家(开发者和企业)为 ...
- Mysql事务探索及其在Django中的实践(二)
继上一篇<Mysql事务探索及其在Django中的实践(一)>交代完问题的背景和Mysql事务基础后,这一篇主要想介绍一下事务在Django中的使用以及实际应用给我们带来的效率提升. 首先 ...
- Mysql事务探索及其在Django中的实践(一)
前言 很早就有想开始写博客的想法,一方面是对自己近期所学知识的一些总结.沉淀,方便以后对过去的知识进行梳理.追溯,一方面也希望能通过博客来认识更多相同技术圈的朋友.所幸近期通过了博客园的申请,那么今天 ...
- netty5 HTTP协议栈浅析与实践
一.说在前面的话 前段时间,工作上需要做一个针对视频质量的统计分析系统,各端(PC端.移动端和 WEB端)将视频质量数据放在一个 HTTP 请求中上报到服务器,服务器对数据进行解析.分拣后从不同的 ...
随机推荐
- Java语言概述
1.1 基础知识 ·第一代语言 打孔机--纯机器语言 ·第二代语言 汇编 ·第三代语言 C.Pascal.Fortran面向过程的语言 C++面向过程/面向对象 Java跨平台的纯面向对象的语言 .N ...
- Hadoop随笔(一):工作流程的源码
一.几个可能会用到的属性值 1.mapred.map.tasks.speculative.execution和mapred.reduce.tasks.speculative.execution 这两个 ...
- mysql表分区(摘自 MySQL表的四种分区类型)
一.什么是表分区通俗地讲表分区是将一大表,根据条件分割成若干个小表.mysql5.1开始支持数据表分区了. 如:某用户表的记录超过了600万条,那么就可以根据入库日期将表分区,也可以根据所在地将表分区 ...
- 【RobotFramework自动化测试】RFS常用脚本
读取后台数据文件:Import Variables | ${CURDIR}/\ABC.py 定位页面:Wait Until Keyword Succeeds | 5s | 500ms | select ...
- Java开发环境的配置
为了能够在计算机上开发Java程序和运行Java程序,就需要在Windows操作系统上配置Java开发环境. 首先,安装JDK: 1.在Oracle官网上下载JavaSE: 2.在Download下载 ...
- IOS UIWebView引用外部CSS样式(转载)
首先,将要引用的CSS样式导入到工程文件,然后我们可以自己拼装一个网页并引用这个样式,具体代码实现如下: -(void)viewDidLoad { [super viewDidLoad]; NSStr ...
- MXNet设计笔记之:深度学习的编程模式比较
市面上流行着各式各样的深度学习库,它们风格各异.那么这些函数库的风格在系统优化和用户体验方面又有哪些优势和缺陷呢?本文旨在于比较它们在编程模式方面的差异,讨论这些模式的基本优劣势,以及我们从中可以学到 ...
- null、空对象和undefined
null:是对象,但是空引用(不指向任何对象) 空对象:是对象,但它的值是指向没有任何属性的对象的引用 undefined:未定义,所以不是对象,本身被定义为“undefined”这一特殊类型 1. ...
- Linux学习方法
应该如何提问? 先要尝试自己解决 - 帮助 - 文档 - 示例 提问的智慧 - 问题详尽 - 贴图
- HTML结构文档中那些基础又重要又容易被忽略的事?
HTML结构文档中那些基础又重要又容易被忽略的事? 大部分的人,总是会做出这样下意识地判断:简单就是不重要,容易就可以直接忽略掉!其实不然,简有精髓,基石必重,岂能略而不顾!HTML结构文档的编写,可 ...