本发明涉及网卡性能测试技术领域,更具体的说是涉及一种linux下使用netperf自动测试网卡性能的方法。
背景技术:
网卡是工作在链路层的网络组件,是局域网中连接计算机和传输介质的接口,不仅能实现与局域网传输介质之间的物理连接和电信号匹配,还涉及帧的发送与接收、帧的封装与拆封、介质访问控制、数据的编码与解码以及数据缓存的功能等。
目前业界网卡性能测试最常使用的两种工具有:iperf和netperf。其中netperf主要针对基于tcp或udp的传输。netperf根据应用的不同,可以进行不同模式的网络性能测试,即批量数据传输(bulkdatatransfer)模式和请求/应答(request/reponse)模式。
目前使用netperf进行网卡性能测试,需要client端和server端两台服务器。client端主要用于监听,server端通过tcp_stream、udp_stream、tcp_rr、设置本地系统发送测试分组的大小等模式进行测试,多采用手动安装开源工具netperf测试工具包,然后在针对每个测试模式逐个进行测试,且每个模式的测试时间和测试网口ip都要逐一进行手动输入,工作量大,耗时耗力。
技术实现要素:
针对以上问题,本发明的目的在于提供一种linux下使用netperf自动测试网卡性能的方法。
本发明为实现上述目的,通过以下技术方案实现:一种linux下使用netperf自动测试网卡性能的方法,包括如下步骤:
步骤1:在server端编译安装开源工具netperf测试工具包;
步骤2:设定测试参数;
步骤3:通过脚本的参数变量调节测试模式的测试线程,并运行脚本;
步骤4:输出并自动保存测试结果。
进一步,所述测试参数包括:参数1、参数2、参数3,参数1为每个模块的测试时间,参数2为每个不同大小本地系统发送测试分组的测试线程数,参数3为待测网口的测试ip。
进一步,所述步骤3具体为:使用for循环将多个测试模式写入同一测试脚本,并且将每个测试模式的测试时间和待测网口的ip设置成测试脚本的参数,自行调节测试时间及测试网口。
进一步,在所述步骤3中,脚本的测试变量包括:测试分组的大小、测试模式的类型。
进一步,将脚本的权限设置为任何用户均可进行读、写、可执行。
进一步,所述步骤3还包括:设定多个测试分组,每个测试分组分别运行每个测试模式。
进一步,所述测试分组的大小为:64k、128k、256k、512k、1024k、1518k。进一步,所述步骤4之后还包括:将测试执行结果写入日志。
进一步,所述测试模式的类型为:udp_stream、udp_rr、tcp_crr、tcp_rr。
本发明有益效果在于:一种linux下使用netperf自动测试网卡性能的方法,能够自动编译安装开源工具netperf测试工具包。针对不同速率的网卡,通过脚本的参数变量调节每个模式的测试线程,实现网卡性能测试的调优。
由于目前netperf性能测试都是对每个模式手动进行逐一测试。本发明,使用for循环将每个需要测试的模式写入同一测试脚本,并且将每个模式的测试时间和待测网口的ip设置成测试脚本的参数,可以自行调节测试时间及测试网口、输出并自动保存测试结果。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。
附图说明
附图1是本发明实施例一的方法流程图。
附图2是本发明实施例二的方法流程图。
具体实施方式
下面结合附图对本发明的具体实施方式做出说明。
实施例一:
如图1所示的一种linux下使用netperf自动测试网卡性能的方法,包括如下步骤:
步骤1:在server端编译安装开源工具netperf测试工具包。
步骤2:设定测试参数。
步骤3:通过脚本的参数变量调节测试模式的测试线程,并运行脚本。
步骤4:输出并自动保存测试结果。
本实施例提出的一种linux下使用netperf自动测试网卡性能的方法,能够自动编译安装开源工具netperf测试工具包。针对不同速率的网卡,通过脚本的参数变量调节每个模式的测试线程,实现网卡性能测试的调优。
实施例二:
如图2所示的一种linux下使用netperf自动测试网卡性能的方法,包括如下步骤:
步骤1:在server端编译安装开源工具netperf测试工具包。
步骤2:设定测试参数。
测试参数包括:参数1、参数2、参数3,参数1为每个模块的测试时间,参数2为每个不同大小本地系统发送测试分组的测试线程数,参数3为待测网口的测试ip。
步骤3:使用for循环将多个测试模式写入同一测试脚本,并且将每个测试模式的测试时间和待测网口的ip设置成测试脚本的参数,自行调节测试时间及测试网口。
步骤4:设定多个测试分组,每个测试分组分别运行每个测试模式。
步骤5:输出并自动保存测试结果。
上述步骤通过脚本实现自动测试,将脚本的权限设置为任何用户均可进行读、写、可执行。测试分组的大小为:64k、128k、256k、512k、1024k、1518k。测试模式的类型为:udp_stream、udp_rr、tcp_crr、tcp_rr。
在上述基础上,具体的脚本内容如下:
#自动编译netperf工具包
cd..
make&&makeinstall
#脚本参数设定:参数1是每个模块的测试时间,参数2是每个不同大小本地系统发送测试分组的测试线程数,参数3是待测网口的测试ip
cdsrc/
time=$1
n=$2
ip=$3
exporttime
exportn
exportip
#编译netperf.sh脚本,设置并写入本地系统发送测试分组的大小,写入udp_stream、udp_rr、tcp_crr、tcp_rr模式
echo"#!/bin/bash">>netperf.sh
foriin{64k,128k,256k,512k,1024k,1518k}
do
echo"echonetperf-h$ip-l$time---m$i|tee-anetperf_$ip_result.txt">>netperf.sh
echo"./netperf-h$ip-l$time---m$i|tee-anetperf_$ip_result.txt">>netperf.sh
for((j=2;j<=$n;j++))
do
echo-n"&./netperf-h$ip-l$time---m$i|tee-anetperf_$ip_result.txt">>netperf.sh
done
echo"sleep10">>netperf.sh
done
foriin{udp_stream,udp_rr,tcp_crr,tcp_rr}
do
echo"echonetperf-t$i-h$ip-l$time|tee-anetperf_$ip_result.txt">>netperf.sh
echo"./netperf-t$i-h$ip-l$time|tee-anetperf_$ip_result.txt">>netperf.sh
echo"sleep10">>netperf.sh
done
chmod777netperf.sh
shnetperf.sh
本实施例提出的一种linux下使用netperf自动测试网卡性能的方法,为使用netperf进行网卡性能的自动化测试提供了一个可行的方案,改善了传统测试方法的操作复杂性,对各个模式进行自动测试,无需繁琐的环境搭建、工具安装、手动参数输入,简洁、省时、自动化测试及结果保存,完全实现自动化测试,对于多个网口或者多种网卡的测试大大节省了人力及资源。
结合附图和具体实施例,对本发明作进一步说明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所限定的范围。