一种基于Python并行的BMC压力测试方法与流程

文档序号:15998937发布日期:2018-11-20 19:12阅读:844来源:国知局

本发明涉及计算机系统测速技术领域,更具体的说是涉及一种基于Python并行的BMC压力测试方法。



背景技术:

随着服务器行业的快速发展,越来越多的客户开始偏向于购买大批量的服务器作为自己的核心应用。所以对服务器的稳定性也提出了更高的要求,而服务器能否保持正常的运转,已经成为了客户应用能否稳定运行的前提。

Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。

BMC:BaseboardManagementController,在服务器监控管理中起着重要的作用,它是一个专门的服务处理机,它利用传感器来监控一台计算机,网络服务器,或者是其他硬件驱动设备的状态,并且通过独立的连接线路和系统管理员进行通信,BMC是智能平台控制接口(IPMI,IntelligentPlatformManagementInterface)的一部分并且通常被包含在模板或者被监控的设备的主电路板里。BMC的传感器用来测量内部物理变量,例如:温度,湿度,电源电压,风扇速度,通信参数和操作系统函数,如果这些变量中任何一个超出了指定限制的范围之外,他就会通知管理员,管理员就会利用远程控制来采取正确的措施。监控设备可以动力循环或者当必要的时候重新启动,这样,单一的管理员就可以同时远程控制无数个服务器和其他设备,节省了网络的总体成本,并且可以确保可靠性。

在服务器监控管理过程中,SMC(SystemManagementController)需要频繁地从BMC读取各个节点的状态,同时BMC也要处理用户监控的请求。因此,为了避免频繁访问BMC导致BMC宕机,提高产品的稳定性,需要在服务器设计阶段对BMC做压力测试。



技术实现要素:

针对以上问题,本发明的目的在于提供一种基于Python并行的BMC压力测试方法,利用Python的多线程并行方法获取BMC当前的Sensor状态,测试BMC在海量数据访问请求的情况下工作的稳定性,从而提高产品的稳定性。

本发明为实现上述目的,通过以下技术方案实现:一种基于Python并行的BMC压力测试方法,包括如下步骤:

步骤1:运行Python,分别加载用于获取系统信息和路径的sys、time、os模块,用于log格式化记录的Logging模块,用于子进程创建的Subprocess模块,用于创建多线程的Threading模块,用于时间转换的Datetime模块,用于获取执行参数的Getopt模块;

步骤2:使用logging模块初始化log格式;

步骤3:获取BMC的初始化信息作为基础信息;

步骤4:使用threading模块同时在规定的测试时间内循环抓取BMC状态信息;

步骤5:分别将抓取的BMC状态信息与基础信息比较,同时调用logging模块记录比较结果;如果BMC状态信息与基础信息不一致,则测试异常,记录异常结果并继续比较;如果在规定的测试时间内没有异常,则测试结束。

进一步,在使用logging模块初始化log格式前,获取执行参数,所述执行参数包括测试的bmc ip地址和host地址。

进一步,所述基础信息和BMC状态信息均包括BMC的FRU、SEL、User、lan、mc和sdr信息。

进一步,使用threading模块同时在规定的测试时间内循环抓取BMC状态信息具体为,通过调用OS command line抓取BMC状态信息。

进一步,执行OS command line抓取BMC状态信息时,如果执行返回错误,就记录在log中。

进一步,通过定义函数checkCurrentSettings建立比较功能,用于比较新抓取的BMC状态信息与基础信息是否一致。

进一步,测试结束后,如果测试正常,则输出PASS;如果测试异常,则输出FAIL。

进一步,如果测试异常,则输出比较失败的次数check fail。

对比现有技术,本发明有益效果在于:本发明提出的一种基于Python并行的BMC压力测试方法,通过运行Python脚本,获取BMC初始状态下包括有FRU、SEL、USER、MC、LAN和SDR的基础信息,使用Python多线程模块threading,同时在规定时间内循环抓取包括上述6项的BMC状态信息与基础信息比较,实现了对BMC的自动压力测试。本发明利用Python的多线程并行方法获取BMC当前的Sensor状态,测试BMC在海量数据访问请求的情况下工作的稳定性,有效的避免频繁访问BMC导致BMC宕机,从而提高产品的稳定性。

本发明基于Python,通用于Windows和Linux的系统环境,应用广泛;测试所需的系统环境稳定,测试结论真实可靠。

由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。

附图说明

附图1是本发明的方法流程图。

具体实施方式

下面结合附图对本发明的具体实施方式做出说明。

如图1所示的一种基于Python并行的BMC压力测试方法,包括如下步骤:

步骤1:运行Python,分别加载用于获取系统信息和路径的sys、time、os模块,用于log格式化记录的Logging模块,用于子进程创建的Subprocess模块,用于创建多线程的Threading模块,用于时间转换的Datetime模块,用于获取执行参数的Getopt模块;

步骤2:使用logging模块初始化log格式;

步骤3:获取BMC的初始化信息作为基础信息;

步骤4:使用threading模块同时在规定的测试时间内循环抓取BMC状态信息;

步骤5:分别将抓取的BMC状态信息与基础信息比较,同时调用logging模块记录比较结果;如果BMC状态信息与基础信息不一致,则测试异常,记录异常结果并继续比较;如果在规定的测试时间内没有异常,则测试结束。

以所述的基于Python并行的BMC压力测试方法为基础,具体的程序实现过程及内容如下:

结合附图和具体实施例,对本发明作进一步说明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所限定的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1