Netperf是一种网络性能的测量工具,主要针对基于TCP或UDP的传输。Netperf根据应用的不同,可以进行不同模式的网络性能测试,即批量数据传输(bulk data transfer)模式和请求/应答(request/reponse)模式。Netperf测试结果所反映的是一个系统能够以多快的速度向另外一个系统发送数据,以及另外一个系统能够以多块的速度接收数据。

Netperf工具以client/server方式工作。server端是netserver,用来侦听来自client端的连接,client端是netperf,用来向server发起网络测试。在client与server之间,首先建立一个控制连接,传递有关测试配置的信息,以及测试的结果;在控制连接建立并传递了测试配置信息以后,client与server之间会再建立一个测试连接,用来来回传递着特殊的流量模式,以测试网络的性能。

1          安装

下载( http://www.netperf.org)获取netperf-2.5.0.tar.bz2源码包;

安装

[root@RedHat netperf-2.5.0]# tar -jxvf netperf-2.5.0.tar.bz2

[root@RedHat netperf-2.5.0]# make

[root@RedHat netperf-2.5.0]#make install

2          使用方法

首先在服务器运行

[root@RedHat netperf-2.5.0]# netserver

在客户端运行

[root@RedHat netperf-2.5.0]#netperf-H host -l testlen -t testname

netperf的命令行参数:

-H host :指定远端运行netserver的server IP地址。

-l testlen:指定测试的时间长度(秒)

-t testname:指定进行的测试类型,包括TCP_STREAM,UDP_STREAM,TCP_RR,TCP_CRR,UDP_RR

3          网络性能介绍

1. TCP网络性能

由于TCP协议能够提供端到端的可靠传输,因此被大量的网络应用程序使用。但是,可靠性的建立是要付出代价的。TCP协议保证可靠性的措施,如建立并维护连接、控制数据有序的传递等都会消耗一定的网络带宽。

Netperf可以模拟三种不同的TCP流量模式:

1) 单个TCP连接,批量(bulk)传输大量数据。

2) 单个TCP连接,client请求/server应答的交易(transaction)方式。

3) 多个TCP连接,每个连接中一对请求/应答的交易方式。

2. UDP网络性能

UDP没有建立连接的负担,但是UDP不能保证传输的可靠性,所以使用UDP的应用程序需要自行跟踪每个发出的分组,并重发丢失的分组Netperf可以模拟两种UDP的流量模式:

1) 从client到server的单向批量传输。

2) 请求/应答的交易方式。

由于UDP传输的不可靠性,在使用netperf时要确保发送的缓冲区大小不大于接收缓冲区大小,否则数据会丢失,netperf将给出错误的结果。因此,对于接收到分组的统计不一定准确,需要结合发送分组的统计综合得出结论。

4          测试案例

服务器端执行

[root@RedHat netperf-2.5.0]# netserver

在客户端运行

[root@RedHat netperf-2.5.0]# netperf -H 192.168.56.102 -l 60

MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.56.102 (192.168.56.102) 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    60.01    248.26

[root@RedHat netperf-2.5.0]#

从netperf的结果输出中,我们可以知道以下的一些信息:

1) 远端系统(即server)使用大小为87380字节的socket接收缓冲;

2) 本地系统(即client)使用大小为16384字节的socket发送缓冲;

3) 向远端系统发送的测试分组大小为16384字节;

4) 测试经历的时间为60秒。

5) 吞吐量的测试结果为248.26*10^6bits/秒。

在缺省情况下,netperf向发送的测试分组大小设置为本地系统所使用的socket发送缓冲大小。

TCP_STREAM方式下与测试相关的局部参数如下表所示:

-s size:设置本地系统的socket发送与接收缓冲大小;

-S size:设置远端系统的socket发送与接收缓冲大小;

-m size:设置本地系统发送测试分组的大小;

-M size:设置远端系统接收测试分组的大小;

-D:对本地与远端系统的socket设置TCP_NODELAY选项I/O测试。

其它的网络性能测试工具,如dbs, iperf, pathrate, nettest, netlogger, tcptrace, ntop等。

推荐阅读:

linux服务器tcp测试工具,Linux网络测试工具Netperf安装及使用相关推荐

  1. linux服务器如何测试网速

    linux服务器如何测试网速 说到测网速我相信很多小伙伴都知道在自己的电脑上操作,但我们平时用的比较多的系统还是Windows系统,那么到了linux系统上你知道怎么测网速吗? 今天还是艾西的服务器小 ...

  2. linux服务器测试软件,linux服务器常用测试工具及命令

    linux服务器常用测试工具及命令 1. 服务器配置查看 执行teddysun大牛的bench.sh脚本,输入下列命令: wget -qO- bench.sh | bash 拿腾讯云的香港轻量级服务器 ...

  3. 如何测试linux服务器的带宽,Linux服务器如何测试带宽上行和下行网速

    摘要:Linux服务器如何测试带宽上行和下行网速 speedtest-cli是Speedtest.net提供了一个命令行版本,在没有图形化桌面时,基于flash.界面友好的Speedtest.net将 ...

  4. Linux 服务器(二)-linux安装方法之Centos安装介绍——Windows中制作USB启动盘 MacOS中制作USB启动盘

    Linux 服务器(二)-linux安装方法之Centos安装介绍--Windows中制作USB启动盘 & MacOS中制作USB启动盘 安装方法 Centos安装方法: 下载镜像 按需选择下 ...

  5. linux服务器立即关机命令,Linux服务器重启/关机命令(shutdown/halt/reboot/init/poweroff)...

    Linux服务器重启命令有shutdown.halt.reboot.init和poweroff,Linux百科网分享各个重启命令参数及使用方法: 以下关于Linux服务器重启命令写的比较详细,如果你着 ...

  6. linux 服务器带宽测试工具

    很多时候我们需要测试Linux服务器的上行和下行宽带.在可用于测试宽带速度的网站中,Speedtest.net也许是使用最广泛的应用"之一". Speedtest.net提供了一个 ...

  7. Linux服务器上测试TCP/UDP端口的连通性

    目录 说明 测试tcp端口的连通性: 使用nc命令来测试udp端口的连通性: 使用nc命令来测试tcp端口的连通性: 使用案例如下: 说明 翻译自: How to Test Port[TCP/UDP] ...

  8. Linux性能优化(八)——网络测试工具

    一.ping 1.ping简介 PING是一个网络工具,用来测试与网络主机俄连通性.PING通过发送ICMP ECHO_REQUEST数据包到网络主机,并显示响应情况,程序会按时间和成功响应的次数估算 ...

  9. linux系统怎么测试udp端口通不通,怎么在Linux服务器上测试TCP/UDP端口的连通性?...

    翻译自: How to Test Port[TCP/UDP] Connectivity from a Linux Server (文档 ID 2212626.1) 适用于: Linux OS - Ve ...

最新文章

  1. BCH测试网上出现第一个UTXO证明
  2. amazeui学习笔记--css(基本样式)--样式统一Normalize
  3. 快速创建 IEqualityComparerT 和 IComparerT 的实例
  4. java 网络序_Java使用网络字节序进行数据传输
  5. antd4 table里面表单赋值_vue的组件化——table表格的封装
  6. 软件工程作业汇总(网络14、15、16)
  7. ASP.NET MVC5 + EF6 + BootStrap 实战系列教程
  8. 【Oracle】数据库热备
  9. macpro如何清理磁盘空间_Mac系统空间占用太大,如何清理磁盘空间
  10. vue如何打开pdf文件
  11. 微信小程序 在wxml写过滤器 脱敏手机号
  12. MySQL数据库(15):高级数据操作-新增数据
  13. 第八次作业——MPEG音频编码
  14. 自己建网站时要注意哪些细节
  15. 用scrapy进行网页抓取
  16. 微信小程序 上滑加载和下拉刷新
  17. urlwrite------url地址重写
  18. NDK制作一个安卓执行程序
  19. 运动坐标系的动力学(欧拉角)
  20. 交换机MAC地址表管理

热门文章

  1. Pandas速查手册
  2. 香港首家Gap奥特莱斯在东荟城名店仓开业
  3. 华为笔试题1-面试题17.24-最大子矩阵
  4. 福利 | Hadoop权威指南(中文)第四版
  5. django安装xadmin及问题处理
  6. sql注入--POST注入
  7. win10开机无法连接SENS服务
  8. 常用的json转换jar包
  9. CMDB 腾讯云部分实现
  10. 计科考研里的【计算机系统结构、计算机软件与理论、计算机应用技术】都是什么意思?...