掌桥专利:专业的专利平台
掌桥专利
首页

一种大批量服务器压力测试系统、方法及装置

文献发布时间:2023-06-19 13:45:04


一种大批量服务器压力测试系统、方法及装置

技术领域

本发明属于服务器测试技术领域,具体涉及一种大批量服务器压力测试系统、方法及装置。

背景技术

在服务器出厂前或者在给用户进行部署之前,为检验服务器硬件质量,一般要进行压力测试,需要进行压力测试的部件主要是CPU、内存、GPU等核心部件,通过运行压测程序将服务器压力开到最大,同时采集服务器在压测状态下的性能指标,判断服务器是否合格。一般出厂的服务器是裸机状态,即没有安装任何操作系统的机器。传统的方式一般是需要在服务器安装完成操作系统之后,使用ans ible等ssh工具批量分发压测软件,然后进行数据采集,此种方式需要依赖客户的正式操作系统,存在安全风险,此外也需要操作者逐台进行分发和采集,非常麻烦,而且在操作系统安装完成后的采集阶段,多台服务器采集数据时,批量上报也会造成短时间内的数据风暴,极易导致主控端出现堵塞,影响主业务的处理速度,甚至会由此造成主控端程序系统故障进而引发宕机,这是生产环境所不能容忍的。

此为现有技术的不足,因此,针对现有技术中的上述缺陷,提供一种大批量服务器压力测试系统、方法及装置,是非常有必要的。

发明内容

针对现有技术的上述现有服务器的压力测试需要在服务器安装操作系统后,批量分别压测软件,需要逐台进行分发和采集,比较繁琐,数据采集阶段批量上报容量造成数据风暴,堵塞主控端,造成宕机的缺陷,本发明提供一种大批量服务器压力测试系统、方法及装置,以解决上述技术问题。

第一方面,本发明提供一种大批量服务器压力测试系统,包括主控端、交换机和被控端;

主控端包括主控模块和分发模块;

被控端包括若干裸机节点,各裸机节点通过交换机与主控端连接;

主控模块,用于根据主控端压力指数动态调整被控端并发裸机节点数量,向被控端裸机节点下发压测采集任务,并接受裸机节点采集的压测结果,以及分析压测结果数据;

分发模块,用于集成PXE分发所需的服务和文件,构建PXE分发环境,向裸机节点分发操作系统,接收主控模块下发的采集压测任务,启动压力测试,并转发采集的裸机节点的压测结果到主控模块。主控模块控制被控端上部的裸机节点并非数量,避免数据风暴问题,保障采集程序的安全可靠;主控模块通过对采集到的多裸机节点压测数据进行统计分析,筛选出不合理的数据和裸机节点服务器,给相关责任人发送压测报告,并给web页面提供后台数据支持。

进一步地,主控端还包括web展示模块;

主控模块,还用于提供web接口,控制web展示模块展示内容;

Web展示模块,用于通过web页面图形化展示被控端各裸机节点采集的压测结果及采集进度。web展示模块提供图形化的操作页面,方便用户直观的查看压力测试的结果,并提供操作按钮对压测采集任务进行人工干预。

第二方面,本发明提供一种大批量服务器压力测试方法,包括如下步骤:

S 1.搭建服务器压力测试环境,配置作为控制节点的主控端,配置设有裸机节点的被控端,并建立主控端与被控端的网络连接关系;

S2.主控端向开机的裸机节点自动分发内存操作系统;

S3.裸机节点启动后,自动执行压力测试,同时通知主控端自身启动状态;

S4.主控端向裸机节点下发压测采集任务,采集压力测试结果,且每间隔第一设定时间段,根据自身资源利用率计算当前允许压测采集任务数量,并根据当前允许压测采集任务数量调整当前实际下发压测采集任务数量。

进一步地,步骤S1具体步骤如下:

S11.配置作为主控节点的主控端,并在主控端集成PXE分发所需的服务和文件;

S12.将若干裸机节点配置在被控端;

S13.通过交换机建立各裸机节点与被控端的网络连接关系,并设置裸机节点与被控端在同一局域网。网络设置是主控端批量下发内存操作系统到待测裸机节点的保证;PXE分发所需的服务包括DHCP、DNS和TFTP,所需文件为集成了压力测试脚本的内存操作系统。

进一步地,步骤S2具体步骤如下:

S21.被控端裸机节点接收开机命令后,通过网络连接主控端;

S22.主控端向连接的裸机节点分发带有压力测试功能的内存操作系统。被控端裸机节点开机,由于没有操作系统,会默认通过交换机从网络启动,而主控端由于集成了PXE环境所需的所有服务,具备PXE分发的能力,裸机节点会被自动分发一个内存操作系统。

进一步地,步骤S3具体步骤如下:

S31.裸机节点从网络启动操作系统后,自动执行压力测试,每间隔第二设定时间段采集自身指定的指标项数据,并采集结果暂存在本地文件夹中;

S32.裸机节点启动后,通过内存操作系统内置的域名向主控端进行注册,通知主控端自身已启动。由于裸机节点采集的指标项数据不能直接上报到主控端,需要在接收到主控端下发的压测采集任务后再进行上报,因此需要在上报之前先进行缓存。

进一步地,裸机节点采集的自身指定的指标项数据包括整机数据、CPU数据、内存数据以及GPU数据;

整机数据包括整机进风口温度数据、出风口温度数据、主板温度、总功率以及风扇转速;

CPU数据包括CPU的用户利用率、空闲利用率、系统利用率、功率以及温度;

内存数据包括内存利用率、ECC实时计数以及功率;

GPU数据包括GPU温度、带宽以及功率。ECC,是Error Correcting Code的简写,是一种能够实现错误检查和纠正的技术,ECC内存就是应用了这种技术的内存,一般多应用在服务器及图形工作站上,可提高计算机运行的稳定性和增加可靠性。

进一步地,步骤S4具体步骤如下:

S41.主控端维护进行任务队列和等待任务队列,进行任务队列中存储正在进行压测采集任务的裸机节点,等待任务队列中存储等待进行压测采集任务的裸机节点;

S42.主控端向进行任务队列中裸机节点下发压测采集任务,采集压力测试结果,且每间隔第一设定时间段采集主控端自身资源利用率,动态调整进行任务队列与等待任务队列中裸机节点数量。通过调整进行任务队列中裸机节点数量,从而控制并发的压测采集任务数量,防止出现数据风暴。

进一步地,步骤S42具体步骤如下:

S421.主控端将注册的裸机节点依次加入等待任务队列;

S422.判断等待任务队列是否为空;

若是,结束;

若否,进入步骤S423;

S423.主控端每间隔第一设定时间段采集自身资源利用率,并根据自身资源利用率计算当前允许压测采集任务数量;

S424.判断当前允许压测采集任务数量是否大于进行任务队列中当前实际下发压测采集任务数量;

若是,进入步骤S425;

若否,返回步骤S421;

S425.主控端向任务队列中裸机节点下发压测采集任务,采集压力测试结果;

S426.裸机节点接收到主控端下发的压测采集任务后,通知主控端任务已开始,并将暂存的采集结果一次性上报主控端;

S427.裸机节点每间隔第二设定时间段上报一次采集的自身指标项数据;

S428.判断裸机节点上的所有压力测试是否均已结束;

若是,通知主控端任务已结束,进入步骤S429;

若否,返回步骤S427;

S429.主控端将任务结束的裸机节点从进行任务队列中删除,并对该裸机节点进行关机,返回步骤S421。控制压测采集任务整体流程,通过计算当前允许压测采集任务数量,动态将当前实际下发压测采集任务数量控制在合理范围之内,避免所有裸机节点全部集中上报造成数据风暴问题

进一步地,步骤S423中,主控端每间隔第一设定时间段采集主控端当前的CPU利用率CPU

根据公式

进一步地,第一设定时间段取20s,第二设定时间段取10s;

mum

第三方面,本发明提供一种大批量服务器压力测试装置,包括压力测试环境搭建模块、分发模块和压力测试模块;

分发模块包括操作系统分发单元和压测采集任务下发单元;

压力测试环境搭建模块,用于搭建服务器压力测试环境,配置作为控制节点的主控端,配置设有裸机节点的被控端,并建立主控端与被控端的网络连接关系;

操作系统分发单元,用于在主控端向开机的裸机节点自动分发内存操作系统;

压力测试模块,用于在裸机节点启动后,自动执行压力测试,同时通知主控端自身启动状态;

压测采集任务下发单元,用于在主控端向裸机节点下发压测采集任务,采集压力测试结果,且每间隔第一设定时间段,根据自身资源利用率计算当前允许压测采集任务数量,并根据当前允许压测采集任务数量调整当前实际下发压测采集任务数量。

进一步地,压力测试环境搭建模块包括:

主控端配置单元,用于配置作为主控节点的主控端,并在主控端集成PXE分发所需的服务和文件;

被控端配置单元,用于将若干裸机节点配置在被控端;

网络配置单元,用于通过交换机建立各裸机节点与被控端的网络连接关系,并设置裸机节点与被控端在同一局域网。

进一步地,操作系统分发单元包括:

网络自动连接子单元,用于在被控端裸机节点接收开机命令后,通过网络连接主控端;

PXE分发子单元,用于在主控端向连接的裸机节点分发带有压力测试功能的内存操作系统。

进一步地,压力测试模块包括:

指标数据采集单元,用于在裸机节点从网络启动操作系统后,自动执行压力测试,每间隔第二设定时间段采集自身指定的指标项数据,并采集结果暂存在本地文件夹中;

裸机注册单元,用于在裸机节点启动后,通过内存操作系统内置的域名向主控端进行注册,通知主控端自身已启动。

进一步地,压测采集任务下发单元包括:

队列维护子单元,用于在主控端维护进行任务队列和等待任务队列,进行任务队列中存储正在进行采集任务压测的裸机节点,等待任务队列中存储等待进行压测采集任务的裸机节点;

采集任务调整子单元,用于在主控端向进行任务队列中裸机节点下发压测采集任务,采集压力测试结果,且每间隔第一设定时间段采集主控端自身资源利用率,动态调整进行任务队列与等待任务队列中裸机节点数量。

本发明的有益效果在于,

本发明提供的大批量服务器压力测试系统、方法及装置,实现在主控端批量下发内存操作系统到待测裸机节点的主机上,内存操作系统启动后会自动启动压力测试并开始采集指标项数据,主控端会根据当前主控端所在服务器的运行情况,有条件地下发压测采集任务,收到压测采集任务的被控端裸机节点会按照约定上报采集指标项数据和压测结果,直到压测结束。

此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。

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

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明的大批量服务器压力测试系统。

图2是本发明的大批量服务器压力测试方法流程示意图一。

图3是本发明的大批量服务器压力测试方法流程示意图二。

图4是本发明的大批量服务器压力测试方法流程示意图三。

图5是本发明的大批量服务器压力测试装置示意图。

图中,1-主控端;2-交换机;3-被控端;4-主控模块;5-分发模块;6-裸机节点;7-web展示模块;8-压力测试环境搭建模块;8.1-主控端配置单元;8.2-被控端配置单元;8.3-网络配置单元;9-压力测试模块;9.1-指标数据采集单元;9.2-裸机注册单元;10-操作系统分发单元;10.1-网络自动连接子单元;10.2-PXE分发子单元;11-压测采集任务下发单元;11.1-队列维护子单元;11.2-采集任务调整子单元。

具体实施方式

为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

实施例1:

如图1所示,本发明提供一种大批量服务器压力测试系统,包括主控端1、交换机2和被控端3;

主控端1包括主控模块4和分发模块5;

被控端3包括若干裸机节点6,各裸机节点6通过交换机2与主控端1连接;

主控模块4,用于根据主控端1压力指数动态调整被控端并发裸机节点6数量,向被控端裸机节点6下发压测采集任务,并接受裸机节点6采集的压测结果,以及分析压测结果数据;

分发模块5,用于集成PXE分发所需的服务和文件,构建PXE分发环境,向裸机节点6分发操作系统,接收主控模块4下发的采集压测任务,启动压力测试,并转发采集的裸机节点6的压测结果到主控模块4。

实施例2:

如图1所示,本发明提供一种大批量服务器压力测试系统,包括主控端1、交换机2和被控端3;

主控端1包括主控模块4、分发模块5和web展示模块7;

被控端3包括若干裸机节点3.1,各裸机节点3.1通过交换机2与主控端1连接;

主控模块4,用于根据主控端1压力指数动态调整被控端并发裸机节点6数量,向被控端裸机节点6下发压测采集任务,并接受裸机节点6采集的压测结果,以及分析压测结果数据;还用于提供web接口,控制web展示模块7展示内容;

分发模块5,用于集成PXE分发所需的服务和文件,构建PXE分发环境,向裸机节点6分发操作系统,接收主控模块4下发的采集压测任务,启动压力测试,并转发采集的裸机节点6的压测结果到主控模块4;

Web展示模块7,用于通过web页面图形化展示被控端3各裸机节点6采集的压测结果及采集进度。

实施例3:

如图2所示,本发明提供一种大批量服务器压力测试方法,包括如下步骤:

S1.搭建服务器压力测试环境,配置作为控制节点的主控端,配置设有裸机节点的被控端,并建立主控端与被控端的网络连接关系;

S2.主控端向开机的裸机节点自动分发内存操作系统;

S3.裸机节点启动后,自动执行压力测试,同时通知主控端自身启动状态;

S4.主控端向裸机节点下发压测采集任务,采集压力测试结果,且每间隔第一设定时间段,根据自身资源利用率计算当前允许压测采集任务数量,并根据当前允许压测采集任务数量调整当前实际下发压测采集任务数量。

实施例4:

如图3所示,本发明提供一种大批量服务器压力测试方法,包括如下步骤:

S1.搭建服务器压力测试环境,配置作为控制节点的主控端,配置设有裸机节点的被控端,并建立主控端与被控端的网络连接关系;体步骤如下:

S11.配置作为主控节点的主控端,并在主控端集成PXE分发所需的服务和文件;

S12.将若干裸机节点配置在被控端;

S13.通过交换机建立各裸机节点与被控端的网络连接关系,并设置裸机节点与被控端在同一局域网;

S2.主控端向开机的裸机节点自动分发内存操作系统;具体步骤如下:

S21.被控端裸机节点接收开机命令后,通过网络连接主控端;

S22.主控端向连接的裸机节点分发带有压力测试功能的内存操作系统;

S3.裸机节点启动后,自动执行压力测试,同时通知主控端自身启动状态;

具体步骤如下:

S31.裸机节点从网络启动操作系统后,自动执行压力测试,每间隔第二设定时间段采集自身指定的指标项数据,并采集结果暂存在本地文件夹中;

S32.裸机节点启动后,通过内存操作系统内置的域名向主控端进行注册,通知主控端自身已启动;

S4.主控端向裸机节点下发压测采集任务,采集压力测试结果,且每间隔第一设定时间段,根据自身资源利用率计算当前允许压测采集任务数量,并根据当前允许压测采集任务数量调整当前实际下发压测采集任务数量;具体步骤如下:

S41.主控端维护进行任务队列和等待任务队列,进行任务队列中存储正在进行压测采集任务的裸机节点,等待任务队列中存储等待进行压测采集任务的裸机节点;

S42.主控端向进行任务队列中裸机节点下发压测采集任务,采集压力测试结果,且每间隔第一设定时间段采集主控端自身资源利用率,动态调整进行任务队列与等待任务队列中裸机节点数量。

实施例5:

如图2、图3及图4所示,本发明提供一种大批量服务器压力测试方法,包括如下步骤:

S1.搭建服务器压力测试环境,配置作为控制节点的主控端,配置设有裸机节点的被控端,并建立主控端与被控端的网络连接关系;体步骤如下:

S11.配置作为主控节点的主控端,并在主控端集成PXE分发所需的服务和文件;

S12.将若干裸机节点配置在被控端;

S13.通过交换机建立各裸机节点与被控端的网络连接关系,并设置裸机节点与被控端在同一局域网;

S2.主控端向开机的裸机节点自动分发内存操作系统;具体步骤如下:

S21.被控端裸机节点接收开机命令后,通过网络连接主控端;

S22.主控端向连接的裸机节点分发带有压力测试功能的内存操作系统;

S3.裸机节点启动后,自动执行压力测试,同时通知主控端自身启动状态;

具体步骤如下:

S31.裸机节点从网络启动操作系统后,自动执行压力测试,每间隔第二设定时间段采集自身指定的指标项数据,并采集结果暂存在本地文件夹中;第二设定时间段取10s;

裸机节点采集的自身指定的指标项数据包括整机数据、CPU数据、内存数据以及GPU数据;

整机数据包括整机进风口温度数据、出风口温度数据、主板温度、总功率以及风扇转速;

CPU数据包括CPU的用户利用率、空闲利用率、系统利用率、功率以及温度;

内存数据包括内存利用率、ECC实时计数以及功率;

GPU数据包括GPU温度、带宽以及功率;

S32.裸机节点启动后,通过内存操作系统内置的域名向主控端进行注册,通知主控端自身已启动;

S4.主控端向裸机节点下发压测采集任务,采集压力测试结果,且每间隔第一设定时间段,根据自身资源利用率计算当前允许压测采集任务数量,并根据当前允许压测采集任务数量调整当前实际下发压测采集任务数量;具体步骤如下:

S41.主控端维护进行任务队列和等待任务队列,进行任务队列中存储正在进行压测采集任务的裸机节点,等待任务队列中存储等待进行压测采集任务的裸机节点;

S42.主控端向进行任务队列中裸机节点下发压测采集任务,采集压力测试结果,且每间隔第一设定时间段采集主控端自身资源利用率,动态调整进行任务队列与等待任务队列中裸机节点数量;具体步骤如下:

S421.主控端将注册的裸机节点依次加入等待任务队列;

S422.判断等待任务队列是否为空;

若是,结束;

若否,进入步骤S423;

S423.主控端每间隔第一设定时间段采集自身资源利用率,并根据自身资源利用率计算当前允许压测采集任务数量;第一设定时间段取20s;

主控端每间隔第一设定时间段采集主控端当前的CPU利用率CPU

根据公式

S424.判断当前允许压测采集任务数量是否大于进行任务队列中当前实际下发压测采集任务数量;

若是,进入步骤S425;

若否,返回步骤S421;

S425.主控端向任务队列中裸机节点下发压测采集任务,采集压力测试结果;

S426.裸机节点接收到主控端下发的采集任务后,通知主控端任务已开始,并将暂存的采集结果一次性上报主控端;

S427.裸机节点每间隔第二设定时间段上报一次采集的自身指标项数据;

S428.判断裸机节点上的所有压力测试是否均已结束;

若是,通知主控端任务已结束,进入步骤S429;

若否,返回步骤S427;

S429.主控端将任务结束的裸机节点从进行任务队列中删除,并对该裸机节点进行关机,返回步骤S421。

实施例6:

如图5所示,本发明提供一种大批量服务器压力测试装置,包括压力测试环境搭建模块8、分发模块5和压力测试模块9;

分发模块5包括操作系统分发单元10和压测采集任务下发单元11;

压力测试环境搭建模块8,用于搭建服务器压力测试环境,配置作为控制节点的主控端,配置设有裸机节点的被控端,并建立主控端与被控端的网络连接关系;压力测试环境搭建模块8包括:

主控端配置单元8.1,用于配置作为主控节点的主控端,并在主控端集成PXE分发所需的服务和文件;

被控端配置单元8.2,用于将若干裸机节点配置在被控端;

网络配置单元8.3,用于通过交换机建立各裸机节点与被控端的网络连接关系,并设置裸机节点与被控端在同一局域网;

操作系统分发单元10,用于在主控端向开机的裸机节点自动分发内存操作系统;操作系统分发单元10包括:

网络自动连接子单元10.1,用于在被控端裸机节点接收开机命令后,通过网络连接主控端;

PXE分发子单元10.2,用于在主控端向连接的裸机节点分发带有压力测试功能的内存操作系统;

压力测试模块9,用于在裸机节点启动后,自动执行压力测试,同时通知主控端自身启动状态;压力测试模块9包括:

指标数据采集单元9.1,用于在裸机节点从网络启动操作系统后,自动执行压力测试,每间隔第二设定时间段采集自身指定的指标项数据,并采集结果暂存在本地文件夹中;

裸机注册单元9.2,用于在裸机节点启动后,通过内存操作系统内置的域名向主控端进行注册,通知主控端自身已启动;

压测采集任务下发单元11,用于在主控端向裸机节点下发压测采集任务,采集压力测试结果,且每间隔第一设定时间段,根据自身资源利用率计算当前允许压测采集任务数量,并根据当前允许压测采集任务数量调整当前实际下发压测采集任务数量;压测采集任务下发单元11包括:

队列维护子单元11.1,用于在主控端维护进行任务队列和等待任务队列,进行任务队列中存储正在进行压测采集任务的裸机节点,等待任务队列中存储等待进行压测采集任务的裸机节点;

采集任务调整子单元11.2,用于在主控端向进行任务队列中裸机节点下发压测采集任务,采集压力测试结果,且每间隔第一设定时间段采集主控端自身资源利用率,动态调整进行任务队列与等待任务队列中裸机节点数量。

尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

相关技术
  • 一种大批量服务器压力测试系统、方法及装置
  • 一种服务器压力测试系统及方法
技术分类

06120113792962