• Netperf性能测试工具(转发)


     

    分类: 网络与安全

    2013-05-09 15:25:57

     

    Netperf是一款开源的网络性能测试工具,主要针对TCP和UDP传输进行测试。它有4种工作模式:TCP_STREAM、TCP_RR、UDP_STREAM、UDP_RR。后续将会对每个工作模式进行详细说明。

    关于Linux系统下如何安装,这里不作说明,网上资料有很多很多。有没有Windows版本的Netperf呢?当然有的,需要下载的话,请戳这里:NetPerf-2.4.5-w32.zip。【请注意它所适用的操作系统版本】经本人亲测,XP SP3确实可以使用。其中,netserver作为server端,netperf作为client端。

    在第一次运行netserver时,遇到这样一个问题:

    C:>netserver.exe  
    1. netserver: fopen of debug file as new stdout failed!: The system cannot find the path specified.  

    解决办法,在C盘根目录下创建一个目录temp,就可以了。为什么呢,看源代码:

    Source: netserver.c  
    1.   
    2. #ifndef DEBUG_LOG_FILE   
    3. #ifndef WIN32   
    4. #define DEBUG_LOG_FILE "/tmp/netperf.debug"   
    5. #else   
    6. #define DEBUG_LOG_FILE "c:\temp\netperf.debug"   
    7. #endif /* WIN32 */   
    8. #endif /* DEBUG_LOG_FILE */  

    好,这样就可以正常使用了。

    netperf常用的全局参数有:

    • -h help
    • -H 指定server端IP
    • -t 指定测试类型,包括TCP_STREAM、TCP_RR、UDP_STREAM、UDP_RR4种。
    • -l 指定测试时间,单位是秒。

    1. TCP_STREAM

    测试TCP流式通讯时的网络带宽,这是netperf的default测试类型。

    C:>netperf -H 192.168.1.152 -t TCP_STREAM -l 10  
    1. TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.1.152 (192.168.1.152) port 0 AF_INET  
    2. Recv    Send    Send  
    3. Socket  Socket  Message Elapsed  
    4. Size    Size    Size    Time    Throughput  
    5. bytes   bytes   bytes   secs.   10^6bits/sec  
    6. 8192    8192    8192    10.00   454.21  
    测试结果表明,TCP带宽为454.21Mbps。

    2. UDP_STREAM

    测试UDP流式通讯时的网络带宽。值得注意的是,UDP测试时,需要确保发送端数据缓冲区不能大于接收端缓冲区,否则肯定会出现数据包丢失,造成测试结果不准确。-m参数用来指定发送端缓冲区大小,-M参数用来指定接收端缓冲区大小。

    C:>netperf -H 192.168.1.152 -t UDP_STREAM -l 10 -- -m 1024 -M 1024  
    1. UDP UNIDIRECTIONAL SEND TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.1.152 (192.168.1.152) port 0 AF_INET  
    2. Socket    Message Elapsed    Messages  
    3. Size      Size    Time       Okay Errors    Throughput  
    4. bytes     bytes   secs.      #    #         10^6bits/sec  
    5. 8192      1024    10.01           0         386.00  
    6. 8192              10.01                     56.27  

    第一行结果是本地的发送统计,也就是本地发送UDP的吞吐量为386Mbps,第二行是server端的接收统计,吞吐量为56.27Mbps。

    3. TCP_RR

    在一次TCP连接中,client端和server端的transaction次数。
    C:>netperf -H 192.168.1.152 -t TCP_RR  
    1. TCP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.1.152 (192.168.1.152) port 0 AF_INET : first burst 0  
    2. Local /Remote  
    3. Socket Size  Request Resp.  Elapsed Trans.  
    4. Send   Recv  Size    Size   Time    Rate  
    5. bytes  Bytes bytes   bytes  secs.   per sec  
    6. 8192   8192  1       1      10.00   10076.08  
    7. 8192   8192  
    测试结果中,第一行是本地统计结果,第二行是远端统计结果,Request和Response报文大小都是1个字节,C/S两端每秒的transaction次数是10076.08。

    4. UDP_RR

    在基于UDP的连接中,client端和server端的transaction次数。

    C:>netperf -H 192.168.1.152 -t UDP_RR  
    1. UDP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.1.152 (192.168.1.152) port 0 AF_INET : first burst 0  
    2. Local /Remote  
    3. Socket Size  Request Resp.  Elapsed Trans.  
    4. Send   Recv  Size    Size   Time    Rate  
    5. bytes  Bytes bytes   bytes  secs.   per sec  
    6. 8192   8192  1       1      10.00   9120.10  
    7. 8192   8192  

    同样地,测试结果中,第一二行分别是本地和远端统计结果,Request和Response报文大小都是1个字节,C/S两端每秒的transaction次数是9120.10。

    那么,在TCP_RR和UDP_RR测试中,Request和Response报文大小如何指定呢?用到的是-r参数。使用方法是,-r req, [rsp]。

  • 相关阅读:
    算法训练 数位分离
    算法训练 薪水计算
    算法训练 整除问题
    算法训练 数对
    pom.xml一个简单配置
    MyBatis3.4.0以上的分页插件错误:Could not find method on interface org.apache.ibatis.executor.statement.StatementHandler named prepare. Cause: java.lang.NoSuchMethodException: org.apache.ibatis.executor.stateme
    MyBatis3-实现MyBatis分页
    mybatis 易百练习笔记
    maven pom.xml配置
    Description Resource Path Location Type The superclass "javax.servlet.http.HttpServlet" was not foun
  • 原文地址:https://www.cnblogs.com/gaosq/p/12530140.html
Copyright © 2020-2023  润新知