zoukankan      html  css  js  c++  java
  • iperf测试网络带宽

    http://blog.chinaaet.com/telantan/p/30901

    https://boke.wsfnk.com/archives/288.html

    https://www.ibm.com/developerworks/cn/linux/l-netperf/index.html

    iperf 和 netperf 都可以用来进行网络测试

    iperf 是一个 TCP/IP 和 UDP/IP 的性能测量工具,能够提供网络吞吐率信息,以及震动、丢包率、最大段和最大传输单元大小等统计信息;从而能够帮助我们测试网络性能,定位网络瓶颈。

    一、安装iperf

    iperf是一个常用的网络性能测试工具,本文主要介绍iperf的移植的过程,最终简单利用iperf测试Zedboard上的千兆以太网性能。

    在官网下载源码:https://github.com/esnet/iperf

    这里使用的是最新版本Iperf3,和旧的Iperf有些区别。

    Host宿主端安装

    解压到相应文件夹,进入目录执行./configure

    ./configure

    这里需要使用g++编译器,因此执行which g++看看是否可以找到g++

    重新执行安装操作,

    ./configure
    
    make
    
    sudo make install

    sudo ldconfig

    确认iperf是否正常安装上

    Target客户端移植

    make clean

    //注意这里编译器只需要前缀,而不是arm-linux-gnueabi-g++

    ./configure --prefix=/home/pp/11/iperf/iperf-master/rootfs --host=arm-linux-gnueabi

    make

    最后在输出文件下查看:

    之后即可移植测试。

    二、测试iperf

    使用方式:客户端模拟像服务器端发送数据,服务器端接收数据,最终生成接收情况、丢包率等.

    iperf参数介绍:

    #常用公共参数
        -i 2    #表示每2秒显示一次报告
        -w 80k    #对于TCP方式,此设置为TCP窗口大小。对于UDP方式,此设置为接受UDP数据包的缓冲区大小,限制可以接受数据包的最大值
    
        -B 192.168.122.1    
            #绑定到主机的多个地址中的一个。对于客户端来说,这个参数设置了出栈接口。对于服务器端来说,这个参数设置入栈接口。这个参数只用于具有多网络接口的主机。
            #在Iperf的UDP模式下,此参数用于绑 定和加入一个多播组。使用范围在224.0.0.0至239.255.255.255的多播地址
    #常用客户端参数
        -b 100m    #用于udp测试时,设置测试发送的带宽,单位:bit/秒,不设置时默认为:1Mbit/-c     #指定服务端ip地址
        -d     #同时测试上行和下行
        -t 10    #设置传输时间,为10秒    
        -P 5    #指定发起5个线程

    UDP模式测试(此模式会显示数据包丢失情况)

    服务端
        iperf -u -s        # -u表示以udp模式运行,-s表示作为服务端
    
    客户端
        iperf -u -c 192.168.122.1 -b 100M -t 60 -i 2
        #解释:在udp模式下,以100Mbps为数据发送速率,客户端到服务器192.168.1.1上传带宽测试,测试时间为60秒
    
        iperf -u -c 192.168.122.1 5M -P 30 -t 6        #客户端同时向服务器端发起30个连接线程,以5Mbps为数据发送速率
        iperf -u -c 192.168.122.1 -b 100M -d -t 60     #以100M为数据发送速率,进行上下行带宽测试

    更正:iperf3 服务器端不再有-u选项

    服务器端:
    iperf3 -p 8000 -s -i 1

    参数说明: -p : 端口号 -s : 标示服务端 -u : 标示udp协议 -i : 检测的时间间隔(单位:秒)

    在客户端

    客户端:
    iperf3 -u -c 113.54.158.252 -p 8000 -i 1 -b 10M
    参数说明: -c : 服务端的ip地址 -p : 端口号 -u : 标示udp协议 -b : 每一次发送的数据大小 -t : 总的发送时间(单位:秒) -i : 发送数据的时间间隔(单位:秒) -P : 表示线程个数,不指定则默认单线程

    从左至右依次为: 线程id 时间 接收数据大小 每秒大小 延时 丢包/总包 丢包率

    TCP模式下网络测试:

    服务器端:
    iperf3 -p 8000  -s -i 1
    
    参数说明: -p : 端口号 -s : 标示服务端 -u : 标示udp协议 -i : 检测的时间间隔(单位:秒)

    TCP客户端

    iperf3 -c 113.54.158.252 -p 8000 -i 1 -b 10M

    客户端

    iperf -c 192.168.122.1 -t 60			#在tcp模式下,客户端到服务器192.168.1.1上传带宽测试,测试时间为60秒。 
    iperf -c 192.168.122.1 -P 30 -t 60		#客户端同时向服务器端发起30个连接线程。 
    iperf -c 192.168.122.1 -d -t 60 -i 2		#进行上下行带宽测试。

  • 相关阅读:
    职业规划——第1.0章、模拟面试的小记(一)
    菜鸟VUER学习记——零0章、打开新的大门
    职业规划——第0章、哇,原来需要的这么多
    经营自己,愈发强大——《软技能——代码之外的生存指南》读后感
    如何阅读一本书
    Java开发规范
    JVM堆和栈的区别
    2016年7月书单推荐
    web性能优化——代理(nginx)
    web性能优化——浏览器相关
  • 原文地址:https://www.cnblogs.com/shuqingstudy/p/10767414.html
Copyright © 2011-2022 走看看