对服务器进行压力测试的方法及装置、终端与流程

文档序号:14010443阅读:557来源:国知局
对服务器进行压力测试的方法及装置、终端与流程

本发明涉及计算机应用技术领域,特别涉及一种对服务器进行压力测试的方法及装、终端。



背景技术:

随着互联网技术的高速发展,对服务器的性能和稳定性的要求越来越高。因此在服务器使用之前或使用过程中需要对服务器进行压力测试,以获知服务器的极限带宽流量。而服务器的极限带宽流量是与服务器中的线程运行数量相关的,当发起的线程数量超过线程运行数量时,超过线程运行数量的线程则处于排队状态而无法实际运行,且使服务器处于过载状态而影响服务器的性能。

目前,在对服务器进行压力测试时,通过手工调节服务器的线程运行数量,对服务器的线程运行数量进行一步步的修正,使向服务器发起的线程数量全部运行且服务器处于极限带宽流量状态下,从而获知服务器的极限带宽流量及对应的线程运行数量。

然而,在通过手工对服务器进行压力测试时,整个压力测试方案需要经历制定测试计划、编写测试用例、执行测试用例等过程,而针对不同的服务器,需要编写测试用例也不尽相同,并且只能通过手动逐步修改测试用例调节向服务器发起的线程数量,从而造成压力测试的工作量很大,耗费较长的压力测试时间。



技术实现要素:

为了解决相关技术中对服务器进行压力测试的时间较长的技术问题,本发明提供了一种对服务器进行压力测试的方法及装置。

第一方面,提供了一种对服务器进行压力测试的方法,包括:

通过向服务器发起线程数量为线程运行数量的任务请求,获取服务器运行所述线程运行数量的线程时的实际流量值;

通过比较所述实际流量值与在预设的单线程压测流量下服务器运行所述线程运行数量的线程时的理论流量值,确定对所述线程运行数量的调节数量;

按照所述调节数量调节所述线程运行数量,直至对所述线程运行数量进行调节时所述实际流量值的变化幅度在预设的波动范围内;

确定最终的所述实际流量值为服务器的极限带宽流量。

第二方面,提供了一种对服务器进行压力测试的装置,包括:

实际流量值获取模块,用于通过向服务器发起线程数量为线程运行数量的任务请求,获取服务器运行所述线程运行数量的线程时的实际流量值;

调节数量确定模块,用于通过比较所述实际流量值与在预设的单线程压测流量下服务器运行所述线程运行数量的线程时的理论流量值,确定对所述线程运行数量的调节数量;

线程运行数量调节模块,用于按照所述调节数量调节所述线程运行数量,直至对所述线程运行数量进行调节时所述实际流量值的变化幅度在预设的波动范围内;

极限带宽流量确定模块,用于确定最终的所述实际流量值为服务器的极限带宽流量。

第三方面,提供了一种智能终端,包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第一方面任一项所述的方法。

第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现根据第一方面中任一项所述的对服务器进行压力测试的方法。

通过本发明的实施例提供的技术方案能够得到以下有益效果:

在对服务器进行压力测试时,通过向服务器发起线程运行数量的任务请求,根据服务器的实际流量值与理论流量值,动态调节服务器的线程运行数量,直至改变线程运行数量时,服务器的实际流量值基本不发生改变,从而通过动态进行服务器线程运行数量的调节,快速获知服务器的极限带宽流量及对应的线程运行数量,大大节约了对服务器进行压力测试的时间,提高了对服务器进行压力测试的效率。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,本发明并不受限制。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1是根据本公开所涉及的一个实施环境的示意图。

图2是根据一示例性实施例示出的一种对服务器进行压力测试的方法流程图

图3是根据图2对应实施例示出的对服务器进行压力测试的方法中步骤s110的一种具体实现流程图。

图4是根据图2对应实施例示出的对服务器进行压力测试的方法中步骤s120的一种具体实现流程图。

图5是根据图2对应实施例示出的另一示例性实施例示出的对服务器进行压力测试的方法流程图。

图6是根据一示例性实施例示出的一种对服务器进行压力测试的装置的框图。

图7是根据图6对应实施例示出对服务器进行压力测试的装置中实际流量值获取模块110的一种具体实现框图。

图8是根据图6对应实施例示出对服务器进行压力测试的装置中调节数量确定模块120的一种具体实现框图。

图9是根据图8对应实施例示出的调节数量确定模块120的另一种具体实现框图。

图10是根据图6对应实施例示出的另一种对服务器进行压力测试的装置的结构框图。

图11是根据一示例性实施例示出的一种终端的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所记载的、本发明的一些方面相一致的装置和方法的例子。

图1是根据本公开所涉及的一个实施环境的示意图。该实施环境包括:终端100以及与终端100进行相互之间数据传输的服务器200。

终端100和服务器200之间的关联方式,包括但不限于以wifi等无线网络或者有线网络实现的二者之间往来的数据关联方式,具体关联方式不受本实施例的限制。

终端100向服务器200发起一定线程数量的任务请求,在服务器200运行该线程数量的线程后获取服务器的实际流量值;进而根据实际流量值与运行该线程数量的线程时的理论流量值动态调节服务器200的线程运行数量,直至对线程运行数量进行调节时实际流量值的变化幅度在预设的波动范围内。

终端100可以是手机、电脑等计算机设备,具体实现方式不受本实施例的限制。

图2是根据一示例性实施例示出的一种对服务器进行压力测试的方法流程图,如图2所示,该对服务器进行压力测试的方法可以包括以下步骤。

在步骤s110中,通过向服务器发起线程数量为线程运行数量的任务请求,获取服务器运行线程运行数量的线程时的实际流量值。

终端向服务器发送任务请求,服务器接收终端的任务请求后将建立线程处理任务。

需要说明的是,服务器针对终端的任务请求建立的线程运行数量将与任务的工作量相关,也就是说,任务的工作量越大,服务器建立的线程运行数量也就越多。

而当服务器达到极限状态后,即使针对继续接收的任务请求建立线程,但对这部分线程却无法运行,只能将置入缓存队列进行排队,此时服务器中运行的线程数量将保持不变,服务器处于极限状态。

实际流量值是服务器在运行线程运行数量时的实际输出带宽流量。通常地,即使保持线程运行数量不变,实际流量值也是在一个较小的幅度范围内波动。

获取服务器运行线程运行数量的线程时的实际流量值时,可以是随机选取服务器在某一时刻的实际输出带宽流量,将该实际输出带宽流量作为实际流量值;也可以是根据预定的时间间隔获取服务器的实际输出带宽流量,进而将获取的多个实际输出带宽流量的平均值作为实际流量值;还可以是通过其他方式获取服务器运行线程运行数量的线程时的实际流量值。

向服务器发起线程数量为线程运行数量的任务请求时,线程运行数量可以是随机设置的,也可以经验而设置的一个较为合理的数量,还可以是通过其他的方式而设置的数值。

在步骤s120中,通过比较实际流量值与在预设的单线程压测流量下服务器运行线程运行数量的线程时的理论流量值,确定对线程运行数量的调节数量。

单线程压测流量是预先设定的。

理论流量值是根据预设的单线程压测流量计算的服务器运行线程运行数量的线程时的实际输出带宽流量。

例如,预设的单线程压测流量为1mb/s,当线程运行数量为10时,服务器的理论流量值为10mb/s。

调节数量是根据实际流量值与理论流量值之间的差距对服务器的线程运行数量进行改变的线程数量。

比较实际流量值与理论流量值时,可以是获取实际流量值与理论流量值之间的差值,也可以是获取实际流量值与理论流量值之间的比值,还可以是其他的比较方式,在此不对实际流量值与理论流量值之间的比较方式进行限定。

在步骤s130中,按照调节数量调节线程运行数量,直至对线程运行数量进行调节时实际流量值的变化幅度在预设的改变范围内。

通过调节数量对服务器的线程运行数量进行调节后,再获取在调节后线程运行数量时服务器的实际流量值与理论流量值,并对继续对实际流量值与理论流量值进行比较,确定对线程运行数量进行调节的新的调节数量,从而通过周而复始地对服务器的线程运行数量进行调节,直至在对服务器的线程运行数量进行数量调节时实际流量值的变化幅度在预设的改变范围内,即停止线程运行数量的调节。

在对服务器的线程运行数量进行数量调节时实际流量值的变化幅度在预设的改变范围内,即通过改变服务器的线程运行数量,而服务器的实际流量值却基本不再改变,说明服务器的输出带宽流量已达到极限状态。

例如,当向服务器发起线程数量为100的任务请求时,服务器的实际流量值为100mb/s,当向服务器发起线程数量为110的任务请求时,服务器的实际流量值为110mb/s,但当向服务器发起线程数量为120的任务请求时,服务器的实际流量值仍为110mb/s,则说明服务器在运行110个线程时已达到极限状态。

在步骤s130中,确定最终的实际流量值为服务器的极限带宽流量。

利用如上所述的方法,通过向服务器发起线程运行数量的任务请求,根据服务器的实际流量值与理论流量值,动态调节服务器的线程运行数量,直至改变线程运行数量时,服务器的实际流量值基本不发生改变,从而通过动态进行服务器线程运行数量的调节,快速获知服务器的极限带宽流量及对应的线程运行数量,大大节约了对服务器进行压力测试的时间,提高了对服务器进行压力测试的效率。

图3是根据图2对应实施例示出的对服务器进行压力测试的方法中步骤s110的细节描述。如图3所示,该步骤s110可以包括以下步骤。

在步骤s111中,根据服务器的最大流量值,计算在预设的单线程压测流量下的理论线程总数。

服务器的最大流量值是由于服务器网卡的硬件性能决定的。

在一具体的示例性实施例中,终端通过向服务器发送特定的命令可以获取服务器的最大流量值。

例如,终端通过ssh2协议+linux命令(例如:sar-ndev...)可以对服务器进行最大流量值的获取。

理论线程总数是理论上服务器可同时运行的线程数量。

例如,单线程压测流量为1mb/s,服务器的最大流量值为100mb/s,则理论线程总数为100。

在步骤s112中,根据理论线程总数向服务器发起线程数量为线程运行数量的任务请求。

根据理论线程总数确定线程运行数量,进而向服务器发送线程数量为线程运行数量的任务请求。通过从一个合理的线程数量开始,动态调节服务器的线程运行数量,从而更加快速地实现服务器极限带宽流量的获取。

例如,在理论线程总数n为100时,根据初始的线程数量p0=n/2,确定初始的线程数量p0=50,向服务器发起线程数量为50的任务请求。

在步骤s113中,获取服务器运行线程运行数量的线程时的实际流量值。

利用如上所述的方法,根据服务器的最大流量值及预设的单线程压测流量,确定一个初始的线程运行数量,使向服务器发起任务请求,对应的线程运行数量更加合理,从而更加快速地实现服务器极限带宽流量的获取,节约了对服务器进行压力测试的时间,大大提高了对服务器进行压力测试的效率。

图4是根据图2对应实施例示出的对服务器进行压力测试的方法中步骤s120的细节描述。如图4所示,该步骤s120可以包括以下步骤。

在步骤s121中,计算实际流量值与在预设的单线程压测流量下服务器运行线程运行数量的线程时的理论流量值之间的差值,得到理论实际差值。

理论实际差值是服务器运行线程运行数量的线程时,理论流量值与实际流量之间的差值。

在步骤s122中,判断理论实际差值是否大于预设的不等阈值,若为是(y),则执行步骤s125;若为否(n),则执行步骤s123。

不等阈值是预先设置的一个流量阈值。

当理论实际差值大于不等阈值时,则说明服务器的理论流量值与实际流量值之间相差较大。此时很可能是服务器已达到极限状态,部分线程无法执行,仍在缓存队列处于等待状态中,因此需减少服务器的线程运行数量。

减少服务器的线程运行数量的方式有多种,可以是预设一个减少数量,在需减少服务器的线程运行数量时,通过在原线程运行数量的基础上减少该减少数量;也可以根据服务器的理论流量值与实际流量值之间的差值,确定减少数量;也可以是随机确定一个减少数量;还可以是通过其他的方式确定减少数量,进而按照该减少数量减少服务器的线程运行数量。

当理论实际差值不大于不等阈值时,则说明服务器的理论流量值与实际流量值之间相差不大。此时服务器并未达到极限状态,因此需增加服务器的线程运行数量。

增加服务器的线程运行数量的方式有多种,可以是预设一个增加数量,在需增加服务器的线程运行数量时,通过在原线程运行数量的基础上增加该增加数量;也可以根据服务器的理论流量值与最大流量值之间的差值,确定增加数量;也可以是随机确定一个增加数量;还可以是通过其他的方式确定增加数量,进而按照该增加数量增加服务器的线程运行数量。

根据理论流量值与最大流量值之间的差值,确定对线程运行数量的增加数量,从而进一步对服务器的线程运行数量进行动态调节,快速使服务器处于极限状态。

在步骤s123中,计算理论流量值与最大流量值之间的差值,得到极限差值。

在步骤s124中,根据极限差值确定对线程运行数量的增加数量。

根据极限差值确定对线程运行数量的增加数量时,通过确定一个合理的增加数量,动态调节服务器的线程运行数量,从而更加快速地使服务器处于极限状态,进而快速实现服务器极限带宽流量的获取。

例如,服务器的最大流量值为100mb/s,单线程压测流量s=1mb/s。在线程运行数量为60时,服务器的理论流量值与实际流量值相等,均为60mb/s。因此,极限差值x为40mb/s,根据增加数量a=x/2s,确定增加数量为20个。

在步骤s125中,根据理论实际差值确定对线程运行数量的减少数量。

根据理论实际差值确定对线程运行数量的减少数量时,通过确定一个合理的减少数量,动态调节服务器的线程运行数量,从而更加快速实现服务器极限带宽流量的获取。

例如,单线程压测流量s=1mb/s,在线程运行数量为60时,服务器的理论流量值为60mb/s,而实际流量值为50mb/s。因此,极限差值y为10mb/s,根据增加数量l=y/2s,确定减少数量为10个。

利用如上所述的方法,在服务器运行一定线程运行数量的线程时,通过比较理论流量值与实际流量值,确定对线程运行数量进行调节的增加数量或减少数量,从而更加快速地实现服务器极限带宽流量的获取,节约了对服务器进行压力测试的时间,大大提高了对服务器进行压力测试的效率。

图5是根据图2对应实施例示出的另一种对服务器进行压力测试的方法,如图5所示,在步骤s120之前,该对服务器进行压力测试的方法还可以包括以下步骤。

在步骤s210中,获取服务器单线程运行时的输出流量值。

服务器单线程运行是服务器运行的线程数量为1。

在对服务器进行压力测试之前,终端向服务器发起线程数量为1的任务请求,使服务器单线程运行,进而在服务器单线程运行时获取服务器的输出流量值。

在服务器单线程运行时获取服务器的输出流量值时,可以是随机获取服务器在某一时刻的输出带宽流量作为输出流量值;也可以是根据预定的时间间隔获取服务器在单线程运行时的输出带宽流量,进而将获取的多个输出带宽流量的平均值作为输出流量值;还可以是通过其他方式获取服务器单线程运行时的输出流量值。

在步骤s220中,确定输出流量值为单线程压测流量。

利用如上所述的方法,在对服务器进行压力测试之前,通过将服务器单线程运行时的输出流量值确定为单线程压测流量,为后续对服务器进行压力测试过程中进行线程运行数量的数量调节提供参考,由于结合该服务器的具体实际,使确定调节数量更加合理,更加快速地实现服务器极限带宽流量的获取,节约了对服务器进行压力测试的时间,大大提高了对服务器进行压力测试的效率。

下述为本发明装置实施例,可以用于执行上述对服务器进行压力测试的方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明对服务器进行压力测试的方法实施例。

图6是根据一示例性实施例示出的一种对服务器进行压力测试的装置的框图,该装置包括但不限于:实际流量值获取模块110、调节数量确定模块120、线程运行数量调节模块130及极限带宽流量确定模块140。

实际流量值获取模块110,用于通过向服务器发起线程数量为线程运行数量的任务请求,获取服务器运行线程运行数量的线程时的实际流量值;

调节数量确定模块120,用于通过比较实际流量值与在预设的单线程压测流量下服务器运行线程运行数量的线程时的理论流量值,确定对线程运行数量的调节数量;

线程运行数量调节模块130,用于按照调节数量调节线程运行数量,直至对线程运行数量进行调节时实际流量值的变化幅度在预设的波动范围内;

极限带宽流量确定模块140,用于确定最终的实际流量值为服务器的极限带宽流量。

上述装置中各个模块的功能和作用的实现过程具体详见上述对服务器进行压力测试的方法中对应步骤的实现过程,在此不再赘述。

可选的,如图7所示,图6示出的实际流量值获取模块110包括但不限于:理论线程总数计算单元111、任务请求发起单元112和实际流量值获取单元113。

理论线程总数计算单元111,用于根据服务器的最大流量值,计算在预设的单线程压测流量下的理论线程总数;

任务请求发起单元112,用于根据理论线程总数向服务器发起线程数量为线程运行数量的任务请求;

实际流量值获取单元113,用于获取服务器运行线程运行数量的线程时的实际流量值。

可选的,如图8所示,图6示出的调节数量确定模块120包括但不限于:理论实际差值计算单元121、理论实际差值判断单元122和减少数量确定单元123。

理论实际差值计算单元121,用于计算实际流量值与在预设的单线程压测流量下服务器运行线程运行数量的线程时的理论流量值之间的差值,得到理论实际差值;

理论实际差值判断单元122,用于判断理论实际差值是否大于预设的不等阈值;

减少数量确定单元123,用于在理论实际差值大于预设的不等阈值时,根据理论实际差值确定对线程运行数量的减少数量。

可选的,如图9所示,图8示出的调节数量确定模块120还包括但不限于:极限差值计算单元124和增加数量确定单元125。

极限差值计算单元124,用于在理论实际差值不大于预设的不等阈值时,计算理论流量值与最大流量值之间的差值,得到极限差值;

增加数量确定单元125,用于根据极限差值确定对线程运行数量的增加数量。

可选的,图10是根据图6对应实施例示出的一种对服务器进行压力测试的装置的框图,如图10所示,该装置还包括但不限于:输出流量值获取模块210及单线程压测流量确定模块220。

输出流量值获取模块210,用于获取服务器运行一个线程时的输出流量值;

单线程压测流量确定模块220,用于确定输出流量值为单线程压测流量。

图11是根据一示例性实施例示出的一种终端100的框图。

参考图11,终端100可以包括以下一个或者多个组件:处理组件101,存储器102,电源组件103,多媒体组件104,音频组件105,传感器组件107以及通信组件108。其中,上述组件并不全是必须的,终端100可以根据自身功能需求增加其他组件或减少某些组件,本实施例不作限定。

处理组件101通常控制终端100的整体操作,诸如与显示,电话呼叫,数据通信,相机操作以及记录操作相关联的操作等。处理组件101可以包括一个或多个处理器109来执行指令,以完成上述操作的全部或部分步骤。此外,处理组件101可以包括一个或多个模块,便于处理组件101和其他组件之间的交互。例如,处理组件101可以包括多媒体模块,以方便多媒体组件104和处理组件101之间的交互。

存储器102被配置为存储各种类型的数据以支持在终端100的操作。这些数据的示例包括用于在终端100上操作的任何应用程序或方法的指令。存储器102可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如sram(staticrandomaccessmemory,静态随机存取存储器),eeprom(electricallyerasableprogrammableread-onlymemory,电可擦除可编程只读存储器),eprom(erasableprogrammablereadonlymemory,可擦除可编程只读存储器),prom(programmableread-onlymemory,可编程只读存储器),rom(read-onlymemory,只读存储器),磁存储器,快闪存储器,磁盘或光盘。存储器102中还存储有一个或多个模块,该一个或多个模块被配置成由该一个或多个处理器109执行,以完成图2、图3、图4和图5任一所示方法中的全部或者部分步骤。

电源组件103为终端100的各种组件提供电力。电源组件103可以包括电源管理系统,一个或多个电源,及其他与为终端100生成、管理和分配电力相关联的组件。

多媒体组件104包括在所述终端100和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括lcd(liquidcrystaldisplay,液晶显示器)和tp(touchpanel,触摸面板)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。

音频组件105被配置为输出和/或输入音频信号。例如,音频组件105包括一个麦克风,当终端100处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器102或经由通信组件108发送。在一些实施例中,音频组件105还包括一个扬声器,用于输出音频信号。

传感器组件107包括一个或多个传感器,用于为终端100提供各个方面的状态评估。例如,传感器组件107可以检测到终端100的打开/关闭状态,组件的相对定位,传感器组件107还可以检测终端100或终端100一个组件的坐标改变以及终端100的温度变化。在一些实施例中,该传感器组件107还可以包括磁传感器,压力传感器或温度传感器。

通信组件108被配置为便于终端100和其他设备之间有线或无线方式的通信。终端100可以接入基于通信标准的无线网络,如wifi(wireless-fidelity,无线网络),2g或3g,或它们的组合。在一个示例性实施例中,通信组件108经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件108还包括nfc(nearfieldcommunication,近场通信)模块,以促进短程通信。例如,在nfc模块可基于rfid(radiofrequencyidentification,射频识别)技术,irda(infrareddataassociation,红外数据协会)技术,uwb(ultra-wideband,超宽带)技术,bt(bluetooth,蓝牙)技术和其他技术来实现。

在示例性实施例中,终端100可以被一个或多个asic(applicationspecificintegratedcircuit,应用专用集成电路)、dsp(digitalsignalprocessing,数字信号处理器)、pld(programmablelogicdevice,可编程逻辑器件)、fpga(field-programmablegatearray,现场可编程门阵列)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。

该实施例中的终端的处理器执行操作的具体方式已经在有关该对服务器进行压力测试的方法的实施例中执行了详细描述,此处将不再做详细阐述说明。

可选的,本发明还提供一种智能终端,执行图2、图3、图4和图5任一所示的对服务器进行压力测试的方法的全部或者部分步骤。该智能终端包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述任一实施例所述的方法。

该实施例中的装置的处理器执行操作的具体方式已经在有关该对服务器进行压力测试的方法的实施例中执行了详细描述,此处将不做详细阐述说明。

在示例性实施例中,还提供了一种存储介质,该存储介质为计算机可读存储介质,例如可以为包括指令的临时性和非临时性计算机可读存储介质。该存储介质例如包括指令的存储器102,上述指令可由终端100的处理器109执行以完成上述对服务器进行压力测试的方法。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,本领域技术人员可以在不脱离其范围执行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

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