本发明属于网卡测试技术领域,具体涉及一种自动化设置网络ip以及测试网卡性能的方法。
背景技术:
当前服务器上支持的网卡越来越多,需要同时测试的网口也越来越多;大量的服务器支持到6张网卡甚至8张网卡同时测试,每张网卡更是最大支持到四个网口,在进行网络测试前需要大量的时间进行网口及ip地址设置,此为现有技术的不足之处。
技术实现要素:
本发明的目的在于,针对上述现有技术存在的缺陷,提供设计一种自动化设置网络ip以及测试网卡性能的方法,以解决上述技术问题。
为了达到上述目的,本发明的技术方案是:
一种自动化设置网络ip以及测试网卡性能的方法,包括如下步骤:
s1:预先设置两个用于测试待测网卡的测试文件,并将两个用于测试待测网卡的测试文件部署在所述待测网卡连接的两个终端上;其中,两个终端分别为服务端和客户端;两个用于测试待测网卡的测试文件分别为第一测试文件和第二测试文件;
s2:在服务端执行第一测试文件,进行网口的ip地址的设置;
s3:在服务端远程执行客户端的第二测试文件进行网口的ip地址的设置,并根据参数传递的mode变量选择相应的测试。
为实现服务端和客户端网络通信,进一步的,步骤s1之前还包括:
服务端和客户端待测试的网口使用网络线对连或通过交换机对连;
服务端和客户端中至少有一个网口通过dhcp服务器获取到动态ip或提前设置了静态ip作为服务端和客户端之间进行通讯的通讯网口,这个ip作为2台服务器之间进行通讯的接口,在自动配置网络ip时会自行跳过该通讯网口。
进一步的,步骤s2具体包括:
s21:在服务端执行第一测试文件,通过命令参数的方式传递测试模式、测试时间、通讯ip,其中,通讯ip包括服务端通讯ip及客户端通讯ip;
s22:读取脚本运行命令中的参数,形成脚本运行需要的变量;
s23:检查netperf工具是否已经安装,没有则进行安装,确认netperf工具安装后运行netserver;
s24:在服务端进行网口的ip地址的设置。
测试开始前需要对配置文件进行正确配置,配置文件用来设置配置ip地址所使用的网段,除了通讯接口外,需要测试多少网口就需要设置相应数量的网段,进一步的,步骤s24中具体包括步骤如下:
s241:获取有网络连接的网口,并通过参数传递的服务端通讯ip,剔除所述的通讯网口后,存入设置文件;
s242:对比设置文件中的网口数量与配置文件中的网段数量;若设置文件中的网口数量与配置文件中的网段的数量相等,执行s243;若设置文件中的网口数量与配置文件中的网段的数量不等,执行s246;
s243:依次读出设置文件中的一个网口,依次读出配置文件中的一个网段;
s244:将读出的网段中的第一个ip设置给读出的网口,并重启该网口;
s245:获取该网口当前的ip,与设置的ip进行比对,若一致,循环执行s243读出下一个网口、网段;若不一致,执行s246;
s246:屏幕打印错误信息或提示信息,测试中断。
进一步的,步骤s243中循环结束,判断客户端的ip是否连通,若ping通后,跳出循环,执行步骤s3;
进一步的,步骤s3具体包括:
s31:在服务端远程执行客户端上的第二测试文件,并通过参数传递测试时间、通讯ip、测试模式;
s32:读取命令中的参数,形成脚本运行需要的变量;
s33:在客户端进行网口的ip地址的设置;
s34:根据参数传递的mode变量选择相应的测试。
进一步的,步骤s33,具体包括如下步骤:
s331:获取有网络连接的网口,并通过参数传递的客户端通讯ip,剔除所述的通讯网口后,存入设置文件;
s332:对比设置文件中的网口数量与配置文件中的网段数量;若设置文件中的网口数量与配置文件中的网段的数量相等,执行s333;若设置文件中的网口数量与配置文件中的网段的数量不等,执行s246;
s333:依次读出设置文件中的一个网口;
s334:依次读出配置文件中的一个网段;
s335:将读出的网段中的第二个ip设置给读出的网口,并重启该网口;
s336:ping同一个网段中的第一个ip是否可以连通,若可以连通,执行s333,读取下一个网口;若不通,执行s334读取下一个网段;
进一步的,若s333循环结束,检查netperf工具是否安装,没有则进行安装,确认netperf工具安装后,执行步骤s34:根据参数传递的mode变量选择相应的测试。
通过参数mode,让脚本通用性更强,可以设置不同的模式跑不同的测试内容,进一步的,步骤s34中mode变量的值为1或2;
其中,mode变量的值为1,设置为压力测试,执行如下步骤:
s3411:依次读出配置文件中的一个网段,执行s3412,循环结束时,执行s3413;
s3412:根据参数传递的测试时间,依次对读出网段的第一个ip进行后台压力测试,测试结果记录到log文件;
s3413:根据参数传递的测试时间,使用服务端的通讯ip进行压力测试,测试结果记录到log文件;
mode变量的值为2,设置为性能测试,执行如下步骤:
s3421:依次读出配置文件中的一个网段,执行s3422,循环结束时,执行s3423;
s3422:根据参数传递的测试时间,使用读出网段的第一个ip地址进行测试,测试结果记录到log文件;
s3423:根据参数传递的测试时间,使用服务端的通讯ip进行测试,测试结果记录到log文件。
本发明的有益效果在于,自动化设置网络ip以及进行网络压力、网络性能测试的方法;通过命令参数的方式传递测试模式、测试时间、通讯网口ip;在保证测试准确率的同时能极大的提高测试效率、降低人力成本。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。
附图说明
图1为本发明实施例提供的一种自动化设置网络ip以及测试网卡性能的方法流程图。
具体实施方式
下面结合附图并通过具体实施例对本发明进行详细阐述,以下实施例是对本发明的解释,而本发明并不局限于以下实施方式。
如图1所示,本发明实施例提供的一种自动化设置网络ip以及测试网卡性能的方法,包括如下:
需要2台服务器,需要测试的网口使用网络线对连,也可以通过交换机对连;2台服务器至少有一个网口可以通过dhcp服务器获取到动态ip或者提前设置了静态ip,这个ip需要作为2台服务器之间进行通讯的接口,在自动配置网络ip时会自行跳过该网口;
测试开始前需要对配置文件network.cfg进行正确配置,配置文件network.cfg用来设置配置ip地址,所使用的网段,除了通讯接口外,需要测试多少网口就需要设置相应数量的网段;2台服务器分别设置为服务端和客户端,
具体步骤如下:
s1:预先设置两个用于测试待测网卡的测试文件,并将两个用于测试待测网卡的测试文件部署在所述待测网卡连接的两个终端上;其中,两个终端分别为服务端和客户端;两个用于测试待测网卡的测试文件分别为第一测试文件和第二测试文件;
s2:在服务端执行第一测试文件,进行网口的ip地址的设置;
s21:在服务端执行set_netperf_local.sh脚本,开始通过命令参数的方式传递测试模式、测试时间、通讯ip,其中,通讯ip包括服务端通讯ip及客户端通讯ip;
s22:读取脚本运行命令中的参数,形成脚本运行需要的变量;
s23:检查netperf工具是否已经安装,没有则进行安装,确认netperf工具安装后运行netserver;
s24:在服务端进行网口的ip地址的设置:
s241:获取有网络连接的网口,并通过参数传递的本地ip,剔除所述的通讯网口后,存入/tmp/nicport文件;
s242:对比/tmp/nicport中的网口数量与配置文件network.cfg中的网段数量;若/tmp/nicport中的网口数量与配置文件network.cfg中的网段的数量相等,执行s243;若/tmp/nicport中的网口数量与配置文件中的网段的数量不等,执行s246;
s243:依次读出/tmp/nicport中的一个网口,依次读出配置文件network.cfg中的一个网段;
s244:将读出的网段中的第一个ip设置给读出的网口,并重启该网口;
s245:获取该网口当前的ip,与设置的ip进行比对,若一致,循环执行s243读出下一个网口、网段;若不一致,执行s246;
s246:屏幕打印错误信息或提示信息,测试中断。
步骤s243中循环结束,判断客户端的ip是否连通,若ping通后,跳出循环,执行步骤s3;
s3:在服务端远程执行客户端的第二测试文件进行网口的ip地址的设置,并根据参数传递的mode变量选择相应的测试。
其中,步骤s3具体包括:
s31:在服务端远程执行客户端上的set_netperf_remote.sh脚本,并通过参数传递测试时间、通讯ip、测试模式,其中,通讯ip包括服务端通讯ip及客户端通讯ip;
s32:读取脚本运行命令中的参数,形成脚本运行需要的变量;
s33:在客户端进行网口的ip地址的设置;
s34:根据参数传递的mode变量选择相应的测试。
步骤s33,具体包括如下步骤:
s331:获取有网络连接的网口,并通过参数传递的客户端通讯ip,剔除所述的通讯网口后,存入/tmp/nicport;
s332:对比/tmp/nicport中的网口数量与配置文件network.cfg中的网段数量;若/tmp/nicport中的网口数量与配置文件network.cfg中的网段的数量相等,执行s333;若/tmp/nicport中的网口数量与配置文件network.cfg中的网段的数量不等,执行s246;
s333:依次读出/tmp/nicport中的一个网口;
s334:依次读出配置文件network.cfg中的一个网段;
s335:将读出的网段中的第二个ip设置给读出的网口,并重启该网口;
s336:ping同一个网段中的第一个ip是否可以连通,若可以连通,执行s333,读取下一个网口;若不通,执行s334读取下一个网段;
若s333循环结束,检查netperf工具是否安装,没有则进行安装,确认netperf工具安装后,执行步骤s34:根据参数传递的mode变量选择相应的测试。
通过参数mode,让脚本通用性更强,可以设置不同的模式跑不同的测试内容,进一步的,步骤s34中mode变量的值为1或2;
其中,mode变量的值为1,执行如下步骤:
s3411:依次读出配置文件network.cfg中的一个网段,执行s3412,循环结束时,执行s3413;
s3412:根据参数传递的测试时间,依次对读出网段的第一个ip进行后台压力测试,测试结果记录到log文件;
s3413:根据参数传递的测试时间,使用服务端的通讯ip进行压力测试,测试结果记录到log文件;
mode变量的值为2,执行如下步骤:
s3421:依次读出配置文件network.cfg中的一个网段,执行s3422,循环结束时,执行s3423;
s3422:根据参数传递的测试时间,使用读出网段的第一个ip地址进行测试,测试结果记录到log文件;
s3423:根据参数传递的测试时间,使用服务端的通讯ip进行测试,测试结果记录到log文件。
测试完成,删除临时文件。
以上公开的仅为本发明的优选实施方式,但本发明并非局限于此,任何本领域的技术人员能思之的没有创造性的变化,以及在不脱离本发明原理前提下所作的若干改进和润饰,都应落在本发明的保护范围内。