开发者社区> 问答> 正文

网络性能测试方法有哪些?

网络性能测试方法有哪些?

展开
收起
小天使爱美 2020-03-25 23:04:40 1490 0
2 条回答
写回答
取消 提交回答
  • 网络性能主要有主动测试,被动式测试以及主动被动相结合测试三种方法 1.主动测量是在选定的测量点上利用测量工具有目的地主动产生测量流量注入网络,并根据测量数据流的传送情况来分析网络的性能。 主动测量在性能参数的测量中应用十分广泛,因为它可以以任何希望的数据类型在所选定的网络端点间进行端到端性能参数的测量。最为常见的主动测量工具就是“Ping”,它可以测量双向时延,IP 包丢失率以及提供其它一些信息,如主机的可达性等。主动测量可以测量端到端的IP 网络可用性、延迟和吞吐量等。因为一次主动测量只是查验了瞬时的网络质量,因此有必要重复多次,用统计的方法获得更准确的数据。 要对一个网络进行主动测量,则需要一个面向网络的测量系统,这种主动测量系统应包括以下几个部分: - 测量节点:它们分布在网络的不同端点上,进行测量数据包的发送和接收,若要进行单向性能的测量,则它们之间应进行严格的时钟同步; - 中心服务器:它与各个测量节点通信,进行整个测量的控制以及测量节点的配置工作; - 中心数据库:存储各个节点所收集的测量数据; - 分析服务器:对中心数据库中的数据进行分析,得到网络整体的或具体节点间的性能状况 在实际中,中心服务器,中心数据库和分析服务器可能位于同一台主机中。 主动测量法依赖于向网络注入测量包,利用这些包测量网络的性能,因此这种方法肯定会产生额外的流量。另一方面,测量中所使用的流量大小以及其他参数都是可调的。主动测量法能够明确地控制测量中所产生的流量的特征,如流量的大小、抽样方法、发包频率、测量包大小和类型(以仿真各种应用)等,并且实际上利用很小的流量就可以获得很有意义的测量结果。主动测量意味着测量可以按测量者的意图进行,容易进行场景的仿真,检验网络是否满足QoS 或SLA 非常简单明了。 总之,主动测量的优点在于可以主动发送测量数据,对测量过程的可控制性比较高,比较灵活机动,并易于对端到端的性能进行直观的统计;其缺点是注入测量流量本身就改变了网络的运行情况,即改变了被测对象本身,使得测量的结果与实际情况存在一定的偏差,而且注入网络的测量流量还可能会增加网络的负担。 2.被动测量是指在链路或设备(如路由器,交换机等)上对网络进行监测,而不需要产生流量的测量方法。 被动测量利用测量设备监视经过它的流量。这些设备可以是专用的,如Sniffer,也可以是嵌入在其它设备(如路由器、防火墙、交换机和主机)之中的,如RMON, SNMP 和netflow 使能设备等。控制者周期性地轮询被动监测设备并采集信息(在SNMP 方式时,从MIB 中采集),以判断网络性能和状态。被动测量主要有三种方式: - 通过SNMP 协议采集网络上的数据信息,并提交至服务器进行处理。 - 在一条指定的链路上进行数据监测,此时数据的采集和分析是两个独立的处理过程。这种方法的问题是OC48(2.5Gbit/s)以上的链路速度超过了 PCI 总线(64bit,33MHz)的能力,因此对这些高速链路的数据采集只能采用数据压缩,聚合等方式,这样会损失一定的准确性。 - 在一台主机上有选择性的进行数据的采集和分析。这种工具只是用来采集分析网络上数据包的内容特性,并不能进行性能参数的测量,如Ethereal 等工具。 被动测量非常适合用来测量和统计链路或设备上的流量,但它并不是一个真正的 QoS 参数,因为流量只是当前网络(设备)上负载情况的一个反映,通过它并不能得到网络实际的性能情况,如果要通过被动测量的方法得到终端用户所关心的时延,丢包,时延抖动等性能参数,只能采用在被测路径的两个端点上同时进行被动测量,并进行数据分析,但这种分析将是十分复杂的,并且由于网络上数据流量特征的不确定性,这种分析在一定程度上也是不够准确的。只有链路带宽这个流量参数可以通过被动测量估算出来。 被动测量法在测量时并不增加网络上的流量,测量的是网络上的实际业务流量,理论上说不会增加网络的负担。但是被动测量设备需要用轮询的方法采集数据、陷阱(trap)和告警(利用SNMP 时),所有这些都会产生网络流量,因此实际测量中产生的流量开销可能并不小。 另外,在做流分析或试图对所有包捕捉信息时,所采集的数据可能会非常大。被动测量的方法在网络排错时特别有价值,但在仿真网络故障或隔离确切的故障位置时其作用会受到限制。 总之,被动测量的优点在于理论上它不产生流量,不会增加网络的负担;其缺点在于被动测量基本上是基于对单个设备的监测,很难对网络端到端的性能进行分析,并且可能实时采集的数据量过大,且存在用户数据泄漏等安全性问题。 3.主动、被动相结合测试 主动测量与被动测量各有其有缺点,而且对于不同的参数来说,主动测量和被动测量也都有其各自的用途。对端到端的时延,丢包,时延变化等参数比较适于进行主动测量;而对于路径吞吐量等流量参数来说,被动测量则更适用。因此,对网络性能进行全面的测量需要主动测量与被动测量相结合,并对两种测量结果进行对比和分析,以获得更为全面科学的结论。

    来自百度知道初夏0535

    2020-03-26 09:42:40
    赞同 展开评论 打赏
  • 概述 本文介绍了如何测试ECS实例的网络性能。

    详细信息 阿里云提醒您:

    如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。 关于如何进行网络性能测试的具体内容如下。

    准备环境 需要准备如下设备。

    注:所有ECS实例必须在同一个安全组内。

    1台测试机:被压力测试网络PPS的ECS实例,可作为Netperf或iperf3测试中的client端或server端。具体规格如下。 注:假设测试机IP地址为:172.0.0.1。 镜像:centos_7_2_64_40G_base_20170222.vhd 规格:ecs.se1.14xlarge 数量:1 虚拟机名称:i-test-vm(以现场实际情况进行命名) 8台陪练机:主体为ECS实例,作为Netperf测试或iperf3测试中的client端或server端,与测试机之间建立控制连接,传递测试配置相关的信息,以及测试结果。具体规格如下。 注:假设8台陪练机的IP地址为:172.0.0.2 − 172.0.0.9。 镜像:centos_7_2_64_40G_base_20170222.vhd 规格:ecs.se1.14xlarge 数量:8 虚拟机名称:i-partnerVm-{1-8}

    安装Netperf 按以下步骤在测试机和陪练机上安装Netperf。

    执行如下命令,下载Netperf。

    wget -c "https://codeload.github.com/HewlettPackard/netperf/tar.gz/netperf-2.5.0" -O netperf-2.5.0.tar.gz 依次执行如下命令,安装Netperf。

    tar -zxvf netperf-2.5.0.tar.gz cd netperf-netperf-2.5.0 ./configure && make && make install && cd .. 执行netperf -h和netserver -h命令,确认安装成功。

    安装iperf3 按以下步骤在测试机和陪练机上安装iperf3工具。

    依次执行如下命令,下载iperf3。

    yum install git -y git clone https://github.com/esnet/iperf 依次执行如下命令,安装iperf3。 cd iperf ./configure && make && make install && cd .. cd src ADD_PATH="$(pwd)" PATH="${APP_PATH}:${PATH}" export PATH 执行iperf3 -h命令,确认安装成功。

    开启多队列功能 在测试机内部依次执行如下命令,开启多队列功能。

    注:以开启eth0网卡为例。

    ethtool -L eth0 combined 4 echo "ff" > /sys/class/net/eth0/queues/rx-0/rps_cpus echo "ff" > /sys/class/net/eth0/queues/rx-1/rps_cpus echo "ff" > /sys/class/net/eth0/queues/rx-2/rps_cpus echo "ff" > /sys/class/net/eth0/queues/rx-3/rps_cpus

    使用Netperf工具测试网络性能 Netperf工具参数介绍和测试相关内容如下。

    Netperf安装完成后会生成2个工具:netserver和netperf。以下为2个工具的主要参数。

    工具名称 工具说明 主要参数 参数说明 netserver 接收端工具(server 端) -p 端口号 netperf 发送端工具(client 端) -H 指定 ECS 实例的 IP 地址。 -p 指定 ECS 实例的端口。 -l 指定运行时间。 -t 指定发包协议类型:TCP_STREAM 或 UDP_STREAM。建议使用 UDP_STREAM。 -m 指定数据包大小。 测试 PPS 时,该值为 1。 测试 BPS(bit per second)时,该值为 1400。

    以下是测试收方向的具体步骤。

    依次执行如下命令,在测试机内启动netserver进程。 netserver -p 11256 netserver -p 11257 netserver -p 11258 netserver -p 11259 netserver -p 11260 netserver -p 11261 netserver -p 11262 netserver -p 11263 注:-p为指定不同端口。 执行如下命令,在陪练机内启动netperf进程,分别指定到测试机的不同netserver端口。 netperf -H 172.0.0.1 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #第一台 netperf -H 172.0.0.1 -p 11257 -t UDP_STREAM -l 300 -- -m 1 #第二台 netperf -H 172.0.0.1 -p 11258 -t UDP_STREAM -l 300 -- -m 1 #第三台 netperf -H 172.0.0.1 -p 11259 -t UDP_STREAM -l 300 -- -m 1 #第四台 netperf -H 172.0.0.1 -p 11260 -t UDP_STREAM -l 300 -- -m 1 #第五台 netperf -H 172.0.0.1 -p 11261 -t UDP_STREAM -l 300 -- -m 1 #第六台 netperf -H 172.0.0.1 -p 11262 -t UDP_STREAM -l 300 -- -m 1 #第七台 netperf -H 172.0.0.1 -p 11263 -t UDP_STREAM -l 300 -- -m 1 #第八台 如果需要测试BPS,则第二步命令应该改为如下。 netperf -H 172.0.0.1 -p 11256 -t UDP_STREAM -l 300 -- -m 1400 #第一台 netperf -H 172.0.0.1 -p 11257 -t UDP_STREAM -l 300 -- -m 1400 #第二台 netperf -H 172.0.0.1 -p 11258 -t UDP_STREAM -l 300 -- -m 1400 #第三台 netperf -H 172.0.0.1 -p 11259 -t UDP_STREAM -l 300 -- -m 1400 #第四台 netperf -H 172.0.0.1 -p 11260 -t UDP_STREAM -l 300 -- -m 1400 #第五台 netperf -H 172.0.0.1 -p 11261 -t UDP_STREAM -l 300 -- -m 1400 #第六台 netperf -H 172.0.0.1 -p 11262 -t UDP_STREAM -l 300 -- -m 1400 #第七台 netperf -H 172.0.0.1 -p 11263 -t UDP_STREAM -l 300 -- -m 1400 #第八台 以下是测试发方向的具体步骤。

    执行如下命令,在所有陪练机内启动1个netserver进程。

    netserver -p 11256 执行如下命令,在测试机内启动8个netperf进程,-H指定为不同 IP 地址。

    netperf -H 172.0.0.2 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #第一台 netperf -H 172.0.0.3 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #第二台 netperf -H 172.0.0.3 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #第三台 netperf -H 172.0.0.4 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #第四台 netperf -H 172.0.0.5 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #第五台 netperf -H 172.0.0.6 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #第六台 netperf -H 172.0.0.7 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #第七台 netperf -H 172.0.0.8 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #第八台 如果需要测试BPS,则上一步命令应该改为如下。 netperf -H 172.0.0.2 -p 11256 -t UDP_STREAM -l 300 -- -m 1400 #第一台 netperf -H 172.0.0.3 -p 11256 -t UDP_STREAM -l 300 -- -m 1400 #第二台 netperf -H 172.0.0.3 -p 11256 -t UDP_STREAM -l 300 -- -m 1400 #第三台 netperf -H 172.0.0.4 -p 11256 -t UDP_STREAM -l 300 -- -m 1400 #第四台 netperf -H 172.0.0.5 -p 11256 -t UDP_STREAM -l 300 -- -m 1400 #第五台 netperf -H 172.0.0.6 -p 11256 -t UDP_STREAM -l 300 -- -m 1400 #第六台 netperf -H 172.0.0.7 -p 11256 -t UDP_STREAM -l 300 -- -m 1400 #第七台 netperf -H 172.0.0.8 -p 11256 -t UDP_STREAM -l 300 -- -m 1400 #第八台

    最终发送端每个netperf进程会输出测试结果,第一条数据行为发包信息概览如下。

    Socket Message Elapsed Messages Size Size Time Okay Errors Throughput bytes bytes secs # # 10^6bits/sec 124928 1 10.00 4532554 0 3.63 212992 10.00 1099999 0.88 注:

    输出结果中各字段含义解释如下表所示。

    字段数据 含义 124928 缓冲区大小 1 数据包大小(Byte) 10.00 测试时间(s) 4532554 数据包成功数 0 失败数 3.63 网络吞吐量(Mbit/s) 通常我们建议在server端执行sar命令来统计实际收到的包并作为实际结果,具体命令为sar -n DEV 1 320。

    使用iperf3工具测试网络性能 iperf3工具参数介绍和测试相关内容如下。

    以下为iperf3工具的主要参数。

    工具名称 工具说明 主要参数 参数说明 iperf3 收发一体 -s 表示作为server端接收包。 -i 间隔多久输出信息流量信息,默认单位为秒。 -p 指定服务的监听端口。 -u 表示采用UDP协议发送报文,不带该参数表示采用TCP协议 -l 表示包大小,默认单位为 Byte。通常测试 PPS 的时候该值为16,测试BPS时该值为1400。 -b 设定流量带宽,可选单位包括:k/m/g。 -t 流量的持续时间,默认单位为秒。 -A CPU亲和性,可以将具体的iperf3进程绑定对应编号的逻辑CPU,避免iperf进程在不同的CPU间调度。

    以下是测试收方向的具体步骤。

    在测试机中以server模式启动iperf3进程。

    iperf3 -s -i 1 -p 16001 iperf3 -s -i 1 -p 16002 iperf3 -s -i 1 -p 16003 iperf3 -s -i 1 -p 16004 iperf3 -s -i 1 -p 16005 iperf3 -s -i 1 -p 16006 iperf3 -s -i 1 -p 16007 iperf3 -s -i 1 -p 16008 在陪练机中以client模式启动iperf3进程,分别指定到测试机的不同端口。

    iperf3 -u -l 16 -b 100m -t 120 -c 172.0.0.1 -i 1 -p 16001 -A 1 iperf3 -u -l 16 -b 100m -t 120 -c 172.0.0.1 -i 1 -p 16002 -A 2 iperf3 -u -l 16 -b 100m -t 120 -c 172.0.0.1 -i 1 -p 16003 -A 3 iperf3 -u -l 16 -b 100m -t 120 -c 172.0.0.1 -i 1 -p 16004 -A 4 iperf3 -u -l 16 -b 100m -t 120 -c 172.0.0.1 -i 1 -p 16005 -A 5 iperf3 -u -l 16 -b 100m -t 120 -c 172.0.0.1 -i 1 -p 16006 -A 6 iperf3 -u -l 16 -b 100m -t 120 -c 172.0.0.1 -i 1 -p 16007 -A 7 iperf3 -u -l 16 -b 100m -t 120 -c 172.0.0.1 -i 1 -p 16008 -A 8

    以下是测试发方向的具体步骤。

    执行如下命令,在每个陪练机中以server模式启动1个iperf3进程。

    iperf3 -s -i 1 -p 16001 在测试机中以client模式启动8个iperf3进程。

    iperf3 -u -l 16 -b 100m -t 120 -c 172.0.0.2 -i 1 -p 16001 -A 1 iperf3 -u -l 16 -b 100m -t 120 -c 172.0.0.3 -i 1 -p 16001 -A 2 iperf3 -u -l 16 -b 100m -t 120 -c 172.0.0.4 -i 1 -p 16001 -A 3 iperf3 -u -l 16 -b 100m -t 120 -c 172.0.0.5 -i 1 -p 16001 -A 4 iperf3 -u -l 16 -b 100m -t 120 -c 172.0.0.6 -i 1 -p 16001 -A 5 iperf3 -u -l 16 -b 100m -t 120 -c 172.0.0.7 -i 1 -p 16001 -A 6 iperf3 -u -l 16 -b 100m -t 120 -c 172.0.0.8 -i 1 -p 16001 -A 7 iperf3 -u -l 16 -b 100m -t 120 -c 172.0.0.9 -i 1 -p 16001 -A 8 注:-c指定为各个陪练机的IP地址。

    最终发送端每个iperf3进程会输出测试结果,第一条数据行为发包信息概览如下。

    [ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams [ 4] 0.00-10.00 sec 237 MBytes 199 Mbits/sec 0.027 ms 500/30352 (1.6%) [ 4] Sent 30352 datagrams 注:

    输出结果中各字段含义解释如下表所示。

    字段数据 含义 237 传送的总数据量 199 带宽大小 0.027 波动率 500/30352 丢包/总报文数 1.6% 丢包率 通常我们建议在server端执行sar命令来统计实际收到的包并作为实际结果,具体命令为sar -n DEV 1 320。

    适用于 云服务器 ECS

    2020-03-26 09:52:48
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
上云时代业务压测和诊断最佳实践 立即下载
超大规模性能测试的云端方案及案例分享 立即下载
Cassandra 性能压测及调优实战 立即下载