问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

netperf可以用来评估SSD性能吗?

发布网友 发布时间:2022-05-06 07:28

我来回答

2个回答

热心网友 时间:2022-06-29 00:30

Netperf是一种网络性能的测量工具,主要针对基于TCP或UDP的传输。

热心网友 时间:2022-06-29 00:31

1 网络性能测试概述

在构建或管理一个网络系统时,我们更多的是关心网络的可用性,即网络是否连通,而对于其整体的性能往往考虑不多,或者即使考虑到性能的问题,但是却发现没有合适的手段去测试网络的性能。

当开发出一个网络应用程序后,我们会发现,在实际的网络环境使用中,网络应用程序的使用效果不是很理想,问题可能出现在程序的开发上面,也有可能由于实际的网络环境中存在着瓶颈。面对这种问题,程序员一般会一筹莫展,原因就在于不掌握一些网络性能测量的工具。

在本文中,首先介绍网络性能测量的一些基本概念和方法,然后结合 netperf 工具的使用,具体的讨论如何测试不同情况下的网络性能。

2 网络性能测量的五项指标

可用性(availability) 响应时间(response time) 网络利用率(network utilization) 网络吞吐量(network throughput) 网络带宽容量(network bandwidth capacity)

2.1 可用性

测试网络性能的第一步是确定网络是否正常工作,最简单的方法是使用 ping 命令。通过向远端的机器发送 icmp echo request,并等待接收 icmp echo reply 来判断远端的机器是否连通,网络是否正常工作。

Ping 命令有非常丰富的命令选项,比如 -c 可以指定发送 echo request 的个数,-s 可以指定每次发送的 ping 包大小。

网络设备内部一般有多个缓冲池,不同的缓冲池使用不同的缓冲区大小,分别用来处理不同大小的分组(packet)。

例如交换机中通常具有三种类型的包缓冲:

一类针对小的分组 一类针对中等大小的分组 还有一类针对大的分组。

为了测试这样的网络设备,测试工具必须要具有发送不同大小分组的能力。Ping 命令的 -s 就可以使用在这种场合。

2.2 响应时间

Ping 命令的 echo request/reply 一次往返所花费时间就是响应时间。有很多因素会影响到响应时间,如网段的负荷,网络主机的负荷,广播风暴,工作不正常的网络设备等等。

在网络工作正常时,记录下正常的响应时间。当用户抱怨网络的反应时间慢时,就可以将现在的响应时间与正常的响应时间对比,如果两者差值的波动很大,就能说明网络设备存在故障。

2.3 网络利用率

网络利用率是指网络被使用的时间占总时间(即被使用的时间+空闲的时间)的比例。比如,Ethernet 虽然是共享的,但同时却只能有一个报文在传输。因此在任一时刻,Ethernet 或者是 100% 的利用率,或者是 0% 的利用率。

计算一个网段的网络利用率相对比较容易,但是确定一个网络的利用率就比较复杂。

因此,网络测试工具一般使用网络吞吐量和网络带宽容量来确定网络中两个节点之间的性能。

2.4 网络吞吐量

网络吞吐量是指在某个时刻,在网络中的两个节点之间,提供给网络应用的剩余带宽。

网络吞吐量可以帮组寻找网络路径中的瓶颈。比如,即使 client 和 server 都被分别连接到各自的 100M Ethernet 上,但是如果这两个 100M 的Ethernet 被 10M 的 Ethernet 连接起来,那么 10M 的 Ethernet 就是网络的瓶颈。

网络吞吐量非常依赖于当前的网络负载情况。因此,为了得到正确的网络吞吐量,最好在不同时间(一天中的不同时刻,或者一周中不同的天)分别进行测试,只有这样才能得到对网络吞吐量的全面认识。

有些网络应用程序在开发过程的测试中能够正常运行,但是到实际的网络环境中却无法正常工作(由于没有足够的网络吞吐量)。这是因为测试只是在空闲的网络环境中,没有考虑到实际的网络环境中还存在着其它的各种网络流量。所以,网络吞吐量定义为剩余带宽是有实际意义的。

2.5 网络带宽容量

与网络吞吐量不同,网络带宽容量指的是在网络的两个节点之间的最大可用带宽。这是由组成网络的设备的能力所决定的。

测试网络带宽容量有两个困难之处:在网络存在其它网络流量的时候,如何得知网络的最大可用带宽;在测试过程中,如何对现有的网络流量不造成影响。网络测试工具一般采用 packet pairs 和 packet trains 技术来克服这样的困难。

3 收集网络性能数据的方式

当确定了网络性能的测试指标以后,就需要使用网络测试工具收集相应的性能数据,分别有三种从网络获取数据的方式:

通过snmp协议直接到网络设备中获取,如net-snmp工具 侦听相关的网络性能数据,典型的工具是tcpmp 自行产生相应的测试数据,如本文中使用的netperf工具

4 Netperf网络性能测试工具介绍

Netperf是一种网络性能的测量工具,主要针对基于TCP或UDP的传输。

Netperf根据应用的不同,可以进行不同模式的网络性能测试,即批量数据传输(bulk data transfer)模式和请求/应答(request/reponse)模式。

Netperf测试结果所反映的是一个系统能够以多快的速度向另外一个系统发送数据,以及另外一个系统能够以多块的速度接收数据。

Netperf工具以client/server方式工作。server端是netserver,用来侦听来自client端的连接,client端是netperf,用来向server发起网络测试。

在client与server之间,首先建立一个控制连接,传递有关测试配置的信息,以及测试的结果;在控制连接建立并传递了测试配置信息以后,client与server之间会再建立一个测试连接,用来来回传递着特殊的流量模式,以测试网络的性能。

4.1 TCP网络性能

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

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

单个TCP连接,批量(bulk)传输大量数据 单个TCP连接,client请求/server应答的交易(transaction)方式 多个TCP连接,每个连接中一对请求/应答的交易方式

4.1 UDP网络性能

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

Netperf可以模拟两种UDP的流量模式:

从client到server的单向批量传输 请求/应答的交易方式

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

5 Netperf的使用

5.1 安装

在Ubuntu下使用: apt-get install netperf

如果linux的发行版中没有源的话,使用下载源码的方式安装:

http://www.netperf.org/netperf/NetperfPage.html

tar -xzvf netperf-2.4.5.tar.gz

cd netperf-2.4.5

./configure

make

make install

5.2 运行

netperf采用客户机/服务器方式工作,首先在服务器上启动netserver。在unix/Linux系统中,可以直接运行可执行程序来启动netserver,也可以让inetd或xinetd来自动启动netserver。

netserver

或者

netserver -D -4 -L 0.0.0.0 -p 9991

当netserver在server端启动以后,即可在客户端上运行netperf开始性能测试:

netperf -H 服务器ip

5.3 Netperf的命令行参数

netperf通过命令行参数来控制测试的类型和具体的测试选项。根据作用范围的不同,netperf的命令行参数可以分为两大类:全局命令行参数、测试相关的局部参数,两者之间使用–分隔:

netperf [global options] -- [test-specific options]

这里只解释那些常用的命令行参数,其它的参数读者可以查询netperf的man手册。

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

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

-t testname:指定进行的测试类型,包括TCP_STREAM,UDP_STREAM,TCP_RR,TCP_CRR,UDP_RR,在下文中分别对它们说明。

在后面的测试示例中,netserver运行在192.168.0.28,server与client通过局域网连接(100M Hub)。

5.4 测试批量(bulk)网络流量的性能

批量数据传输典型的例子有ftp和其它类似的网络应用(即一次传输整个文件)。根据使用传输协议的不同,批量数据传输又分为TCP批量传输和UDP批量传输。

5.4.1 TCP_STREAM

Netperf缺省情况下进行TCP批量传输,即-t TCP_STREAM。测试过程中,netperf向netserver发送批量的TCP数据分组,以确定数据传输过程中的吞吐量:

#netperf -H 192.168.0.28 -l 60

TCP STREAM TEST to 192.168.0.28

Recv Send Send

Socket Socket Message Elapsed

Size Size Size Time Throughput

bytes bytes bytes secs. 10^6bits/sec

87380 16384 16384 60.00 88.00

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

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

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

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

测试经历的时间为60秒

吞吐量的测试结果为88Mbits/秒

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

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

参数 说明

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

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

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

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

-D 对本地与远端系统的socket设置TCP_NODELAY选项
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
前几天在楼下吃饭,店家推荐使用淘气购支付,听说可以用豆豆换东西。会... 绵阳淘气购科技有限公司怎么样? 四川省淘气购商贸有限公司怎么样? 盐酸洛美沙星分散片的作用 盐酸洛美沙星颗粒的剂量如何根据不同感染情况调整? 盐酸洛美沙星颗粒的化学名是什么? 盐酸洛美沙星胶囊功效 洛美沙星盐酸洛美沙星 洛美沙星的功效与作用 盐酸洛美沙星颗粒能治疗哪些类型的感染? 借12500,分12期,每期还1628,请问年利息是多少,合法吗? 借6800分12期每期还683.14。年利率是多少算高利贷吗? 我的借呗我借了八千四,分十二期,每期要还839.36元,那么利息一个月是多少? 借180000分12期利息多少才算正常? 支付宝借呗借18000,分十二期还,约支付利息多少?每期应还多少钱? 我想加盟一个奶茶店,但是不知道利润有多大? - 信息提示 借一万12期每月还多少,利息是多少呢? 有什么象《苦月亮》的电影吗?推进几部来!! 奶茶店应该怎样盈利? 苦月亮电影 奶茶店靠什么赚钱? 安装打印机驱动时电脑无法检测到打印机 - 信息提示 佳能打印机安装最后一步显示无法检测到打印机是什么问题 鲁大师显卡跑分十七万算高吗 泰迪狗能吃玉米糊吗 借9000,分12期还利率是1.625,我一期还多少息,多少本金 显卡差距多大,显卡跑分俩各多少? 泰迪狗 可以喝玉米粥吗 借180012个月还清利息是多少? 借8000,分12期,每个月要还799.56,每个月的利息接近200,这算是高利贷吗? 贷款21000分12期每期还款1798利息是多少? 古时候,太监怎么称呼自己? 小学生三月学习雷锋总结报告怎样写? 小学3,15学习雷锋自我评价和家长评价怎么写 在12306上购票,在火车到达终点站后再取票可以吗 truss架和桁架,雷亚架有什么不同 舞台桁架那么高,怎么搭建起来的呢? 古代皇帝身边的太监自称自己什么? 中午刚买了新鲜的排骨回来,想下午5-6点晚饭的时候做,没冰箱,但是有空调,室内是比较凉快的 舞台架 铝合金架子8.5*6米一套舞台演出设备需要多少钱 这种架子怎么拆 舞台背景架子哪家的好 舞台背景架有多高请专业老师指点,谢谢您 古代中太监也可以自称奴婢吗 婚礼舞台道具挂灯的有什么架子,拜托详细说明一下。。。 中午买的排骨放到晚上怎样才不会有味 舞台背景怎样设置会更经济美观 EXCEL用什么函数下拉可以一组数据重复多次?比如: