知识共享许可协议
本作品采用知识共享署名-非商业性使用-禁止演绎 3.0 未本地化版本许可协议进行许可。

说明
事先准确的环境:
创建点对点设备:
    ovs-vport1 - vport1
    ovs-vport2 - vport2
Open vSwitch用于网络控制:
    创建br0网桥,并把eth0加入到br0;
    创建两个tap虚拟网卡(ovs-vport1, ovs-vport2)并加入到br0;
iproute 用于设置网络空间用于模拟隔离成两个网格,分为是:
    network1: vport1 - 192.168.0.1/24
    network2: vport2 - 192.168.0.2/24
两块tap虚拟网卡(vport1, vport2)分别接入到network1, network2

本次测试的工具分别是: 
    nuttcp
    netperf
    iperf
    speedtest-cli

只记录基本用法。
nuttcp
  • 安装

    http://www.nuttcp.net/
    
    wget http://nuttcp.net/nuttcp/nuttcp-6.1.2.tar.bz2
    tar jxvf nuttcp-6.1.2.tar.bz2
    cd nuttcp-6.1.2
    gcc -O2 -o nuttcp nuttcp-6.1.2.c 
    
  • 使用

    在192.168.0.2里作为服务器启动:
    ./nuttcp -S
    
    在192.168.0.1执行:
    ./nuttcp 192.168.0.2
    
    现在OVS没有对vport1进行限速,显示结果:
    19425.8125 MB /  10.00 sec = 16293.8955 Mbps 97 %TX 95 %RX 0 retrans 0.34 msRTT
    用OVS对vport1设置限速1M,再执行,显示结果
    1.5853 MB /  13.30 sec =    1.0002 Mbps 0 %TX 0 %RX 0 retrans 0.35 msRTT
    
netperf
  • 安装

    yum install -y netperf
    
  • 使用

    在192.168.0.2里作为服务器启动:
    netserver
    
    在192.168.0.1执行:
    netperf -H 192.168.0.2
    
    没有限速,显示结果:
    MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.0.2 () port 0 AF_INET
    Recv   Send    Send                          
    Socket Socket  Message  Elapsed              
    Size   Size    Size     Time     Throughput  
    bytes  bytes   bytes    secs.    10^6bits/sec  
    
    87380  16384  16384    10.00    7133.61
    
    限速1M,显示结果:
    
    MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to       192.168.0.2 () port 0 AF_INET
    Recv   Send    Send                          
    Socket Socket  Message  Elapsed              
    Size   Size    Size     Time     Throughput  
    bytes  bytes   bytes    secs.    10^6bits/sec  
    
    87380  16384  16384    10.68       1.00   
    
iperf
  • 安装

    yum install iperf -y
    
  • 使用

    在192.168.0.2里作为服务器启动:
    iperf -s
    
    在192.168.0.2执行:
    iperf -c 192.168.0.2
    
    没有限速,显示结果:
    ------------------------------------------------------------
    Client connecting to 192.168.0.2, TCP port 5001
    TCP window size: 19.3 KByte (default)
    ------------------------------------------------------------
    [  5] local 192.168.0.1 port 54210 connected with 192.168.0.2 port 5001
    [ ID] Interval       Transfer     Bandwidth
    [  5]  0.0-10.0 sec  4.08 GBytes  3.50 Gbits/sec
    
    设置限速1M,显示结果:
    ------------------------------------------------------------
    Client connecting to 192.168.0.2, TCP port 5001
    TCP window size: 19.3 KByte (default)
    ------------------------------------------------------------
    [  5] local 192.168.0.1 port 54209 connected with 192.168.0.2 port 5001
    [ ID] Interval       Transfer     Bandwidth
    [  5]  0.0-10.3 sec  1.27 MBytes  1.04 Mbits/sec
    
  • 使用UDP测试

    server: iperf -s -u
    client: iperf -c 192.168.0.2 -u -b 2M
    
speedtest-cli
  • 安装

    yum install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm -y
    yum install python-pip -y
    pip install --upgrade pip
    
    pip install speedtest-cli
    
  • 使用

    执行: speedtest-cli
    执行生成分享的图片:
    speedtest-cli --share