CN109343949B - 一种容量迁移方法、装置、电子设备及存储介质 - Google Patents
一种容量迁移方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN109343949B CN109343949B CN201811191830.1A CN201811191830A CN109343949B CN 109343949 B CN109343949 B CN 109343949B CN 201811191830 A CN201811191830 A CN 201811191830A CN 109343949 B CN109343949 B CN 109343949B
- Authority
- CN
- China
- Prior art keywords
- task
- current
- capacity
- resource
- press
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000013508 migration Methods 0.000 title claims abstract description 53
- 230000005012 migration Effects 0.000 title claims abstract description 53
- 238000003860 storage Methods 0.000 title claims abstract description 16
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims abstract description 86
- 238000003825 pressing Methods 0.000 claims abstract description 68
- 230000008569 process Effects 0.000 claims description 24
- 238000009530 blood pressure measurement Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 6
- 238000011156 evaluation Methods 0.000 claims description 5
- 238000012546 transfer Methods 0.000 claims description 2
- 238000012360 testing method Methods 0.000 abstract description 15
- 238000010586 diagram Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000011056 performance test Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000528 statistical test Methods 0.000 description 1
- 238000009662 stress testing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Factory Administration (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开了一种容量迁移方法、装置、电子设备及存储介质,所述方法包括:当对当前施压机进行任务控制调度时,采集当前施压机的资源消耗信息;基于所述资源消耗信息对所述当前施压机的资源水位进行评估;当所述当前施压机的资源水位达到第一设定阈值时,基于设定规则对所述当前施压机的任务容量进行迁移,以使所述当前施压机的资源水位下降至所述第一设定阈值以下。通过采用上述技术方案可以解决施压机资源过载的问题,提高测试效率以及准确度。
Description
技术领域
本发明实施例涉及计算机网络数据处理技术领域,尤其涉及一种容量迁移方法、装置、电子设备及存储介质。
背景技术
性能测试是通过自动化的测试工具模拟多种正常以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试确定在各种工作负载下系统的性能,目的是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是用于获得系统能够提供的最大服务级别的测试。
目前,基于开源压测平台(例如Ngrinder、Jmeter等)的压测模型均是开环的,即控制中心将压测任务平均分配给每个预设的施压机,之后控制中心不再对每个参与压测任务的施压机进行控制,因此开环压测模型存在以下问题:当针对压测任务所需的实际施压机数量大于预设的施压机数量时,会出现施压机资源过载的情况,导致测试不准确,统计的测试数据没有参考意义。
发明内容
本发明实施例提供一种容量迁移方法、装置、电子设备及存储介质,通过所述方法可以解决施压机资源过载的问题,提高测试效率以及准确度。
为实现上述目的,本发明实施例采用如下技术方案:
第一方面,本发明实施例提供了一种容量迁移方法,所述方法包括:
当对当前施压机进行任务控制调度时,采集当前施压机的资源消耗信息;
基于所述资源消耗信息对所述当前施压机的资源水位进行评估;
当所述当前施压机的资源水位达到第一设定阈值时,基于设定规则对所述当前施压机的任务容量进行迁移,以使所述当前施压机的资源水位下降至所述第一设定阈值以下。
进一步的,所述采集当前施压机的资源消耗信息,包括:
当所述当前施压机空闲时,通过Sigar(System Information Gatherer AndReporter,系统信息收集和报告)接口按照第一设定频率采集所述当前施压机的资源消耗信息;
当所述当前施压机运行任务时,通过Sigar接口按照第二设定频率采集所述当前施压机的资源消耗信息;
其中,所述第一设定频率小于所述第二设定频率。
进一步的,所述基于设定规则对所述当前施压机的任务容量进行迁移之前,还包括:
读取所述当前施压机最近一次的历史容量调度信息;
根据所述历史容量调度信息确定所述当前施压机中需要被迁移的任务容量;
其中,每次对当前施压机进行任务控制调度时,通过栈类型的数据结构存储当前施压机的历史容量调度信息。
进一步的,所述基于设定规则对所述当前施压机的任务容量进行迁移,以使所述当前施压机的资源水位下降至所述第一设定阈值以下,包括:
将所述需要被迁移的任务容量从当前施压机迁移至资源水位未达到第二设定阈值的任务关联的施压机,直到所述任务关联的所有施压机的资源水位均达到第二设定阈值;
若所述任务关联的所有施压机的资源水位均达到第二设定阈值且所述需要被迁移的任务容量还未全部迁移,则将剩余的任务容量迁移至非任务关联的施压机,直到非任务关联的所有施压机的资源水位达到第二设定阈值;
若资源池中所有的施压机的资源水位全部达到第二设定阈值时,所述需要被迁移的任务容量还未全部迁移,则将剩余任务容量继续迁移至所述任务关联的施压机,直到所述任务关联的所有施压机的资源水位均达到第三设定阈值;
若所述任务关联的所有施压机的资源水位均达到第三设定阈值且所述需要被迁移的任务容量还未全部迁移,则将剩余的任务容量迁移至非任务关联的施压机,直到非任务关联的所有施压机的资源水位达到第三设定阈值;其中,所述第一设定阈值大于所述第三设定阈值,所述第三设定阈值大于所述第二设定阈值;所述任务关联的施压机指同时参与所述任务的施压机,所述非任务关联的施压机指没有参与所述任务的施压机。
进一步的,所述基于设定规则对所述当前施压机的任务容量进行迁移,以使所述当前施压机的资源水位下降至所述第一设定阈值以下,包括:
若目标施压机已有的进程存在线程余位,则将所述需要被迁移的任务容量迁移至目标施压机已有的进程中,否则,在所述目标施压机中创建新进程,将所述需要被迁移的任务容量迁移至所述新进程中;
其中,所述目标施压机指接收所述需要被迁移的任务容量的施压机。
进一步的,所述基于设定规则对所述当前施压机的任务容量进行迁移之前,所述方法还包括:
对当前施压机进行上锁操作,以避免当前施压机的任务容量同时被迁移至多个目标施压机;
对任务容量迁移的目标施压机进行上锁操作,以避免多个当前施压机的任务容量同时向所述目标施压机迁移导致所述目标施压机资源过载。
进一步的,所述资源消耗信息包括CPU(Central Processing Unit,中央处理单元)的使用率。。
第二方面,本发明实施例提供了一种容量迁移装置,所述装置包括:
采集模块,用于当对当前施压机进行任务控制调度时,采集当前施压机的资源消耗信息;
评估模块,用于基于所述资源消耗信息对所述当前施压机的资源水位进行评估;
迁移模块,用于当所述当前施压机的资源水位达到第一设定阈值时,基于设定规则对所述当前施压机的任务容量进行迁移,以使所述当前施压机的资源水位下降至所述第一设定阈值以下。
第三方面,本发明实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的容量迁移方法。
第四方面,本发明实施例提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时实现如上述第一方面所述的容量迁移方法。
本发明实施例提供的一种容量迁移方法,通过当对当前施压机进行任务控制调度时,采集当前施压机的资源消耗信息;基于所述资源消耗信息对所述当前施压机的资源水位进行评估;当所述当前施压机的资源水位达到第一设定阈值时,基于设定规则对所述当前施压机的任务容量进行迁移,以使所述当前施压机的资源水位下降至所述第一设定阈值以下的技术手段,解决了在对系统进行压测过程中施压机资源过载的问题,提高了测试效率以及准确度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据本发明实施例的内容和这些附图获得其他的附图。
图1为本发明实施例一提供的一种容量迁移方法流程示意图;
图2为本发明实施例二提供的一种容量迁移方法流程示意图;
图3为本发明实施例三提供的一种容量迁移装置结构示意图;
图4为本发明实施例四提供的一种电子设备的结构示意图。
具体实施方式
为使本发明解决的技术问题、采用的技术方案和达到的技术效果更加清楚,下面将结合附图对本发明实施例的技术方案作进一步的详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
图1为本发明实施例一提供的一种容量迁移方法流程示意图。本实施例公开的容量迁移方法可以由容量迁移装置来执行,其中该装置可由软件和/或硬件实现,并一般集成在终端中,例如智能手机或者电脑等。具体参见图1所示,该方法包括如下步骤:
110、当对当前施压机进行任务控制调度时,采集当前施压机的资源消耗信息。
其中,所述施压机为在进行系统性能测试时能够产生压测流量的机器,可以是虚拟机,也可以是物理机,例如服务器,手机以及电脑等。在对系统进行压力测试时,通常控制中心每隔500ms触发一次任务控制调度,根据测试任务设置的线程数、当前已经施压线程数、各施压机的资源分布状况决定将测试任务设置的线程分配至哪些施压机,每个施压机分配多少施压线程等,所述施压机的资源分布状况具体指施压机的CPU使用率、内存使用率等状况。通常,当施压机的CPU使用率达到80%时,则认为当前施压机存在资源过载的问题。为了尽量减少施压机资源过载问题,当对当前施压机进行任务控制调度时,即对当前施压机分配新的施压线程之前,对当前施压机进行资源过载判定,若当前施压机不存在资源过载问题且符合继续加压的条件,则可对当前施压机继续加压,若当前施压机存在资源过载问题,则对当前施压机进行容量迁移,即将分配至当前施压机的施压线程迁移至其他的施压机,以使当前施压机的资源使用率下降到不过载的水平。通常,若当前施压机的资源水位在50%以下则表示可以继续对当前施压机进行加压,所述施压机的资源水位用于表示施压机资源的使用情况,施压机的资源水位越高表示施压机已经被使用的资源越多,剩余的可用资源越少;施压机的资源水位越低表示施压机已经被使用的资源越少,剩余的可用资源越多,例如施压机的资源水位为50%,表示施压机当前已经有一半的资源被使用。对当前施压机进行资源过载判定的第一步是采集当前施压机的资源消耗信息,所述资源消耗信息具体可以指CPU使用率,内存使用率以及平均负载等信息,本实施例中所述资源消耗信息以CPU使用率为例,即当前施压机的CPU使用率表征了当前施压机的资源水位,若当前施压机的CPU使用率为50%,则表示当前施压机的资源水位为50%。
具体的,所述采集当前施压机的资源消耗信息,包括:
当所述当前施压机空闲时,通过Sigar接口按照第一设定频率采集所述当前施压机的资源消耗信息;
当所述当前施压机运行任务时,通过Sigar接口按照第二设定频率采集所述当前施压机的资源消耗信息;
其中,所述第一设定频率小于所述第二设定频率。
Sigar是Hyperic HQ主要的数据收集组件,可兼容多数平台,例如windows系列平台、linux系列平台以及AIX系列平台等,用于收集系统信息。Sigar接口是一个用来收集系统信息的极为方便使用的接口,可以收集的系统信息例如包括:系统内存信息、CPU信息、平均负载信息、登录信息、系统运行时间、每个进程占用的内存、打开的文件、网络接口探测、网络路由以及连接表等信息。
通常,当施压机空闲时,每隔5s采集一次施压机的监控信息即资源消耗信息,当施压机有任务运行时每隔200ms采集一次施压机的资源消耗信息,当施压机有任务正在运行时,CPU的使用率实时波动,若采集时间间隔太小,则Sigar接口采集到的施压机的资源消耗信息波动性较高,不利于施压机资源水位的判定。因此,可通过加大采集时间间隔,减少采集到的施压机资源消耗信息波动性较高的可能性,或者进行多次采集,然后取平均值的方式得到当前施压机的资源消耗信息。
120、基于所述资源消耗信息对所述当前施压机的资源水位进行评估。
若所述资源消耗信息包括CPU使用率、内存使用率以及带宽使用率等多种信息,则可预先保存资源消耗信息与资源水位之间的映射关系,根据预先保存的资源消耗信息与资源水位之间的映射关系根据采集到的当前施压机的资源消耗消息确定当前施压机的资源水位。本实施例以所述资源消耗信息为CPU的使用率为例,对应的所述CPU的使用率即代表当前施压机的资源水位,例如,若采集的当前施压机的资源消耗信息为CPU使用率为50%,则表示当前施压机的资源水位为50%。
130、当所述当前施压机的资源水位达到第一设定阈值时,基于设定规则对所述当前施压机的任务容量进行迁移,以使所述当前施压机的资源水位下降至所述第一设定阈值以下。
通常,所述第一设定阈值设置为80%,当当前施压机的资源水位达到80%时,则认为当前施压机存在资源过载的问题,需要对当前施压机的任务容量进行迁移,以使当前施压机的资源水位下降至80%以下,从而解决当前施压机资源过载的问题。所述任务容量具体指执行某个压测任务给当前施压机施加的线程。
为了提高容量迁移效率以及容量迁移的精准度,本实施例选择将导致当前施压机资源过载的任务容量进行迁移。例如,当前施压机在第一次的任务控制调度时被分配执行第一任务,通过执行第一任务,当前施压机的资源水位达到70%,小于80%,故当前施压机被认为是非资源过载施压机;在第二次任务控制调度时,通过对当前施压机的资源消耗信息进行采集,并对当前施压机的资源水位进行评估确定出可继续给当前施压机加压,当前施压机被分配执行第二任务,通过执行第二任务,当前施压机的资源水位达到85%,超过80%,故当前施压机被认为是资源过载施压机;当对当前施压机进行第三次任务控制调度时,通过对当前施压机的资源消耗信息进行采集,并对当前施压机的资源水位进行评估确定出当前施压机存在资源过载的问题,需要对当前施压机的任务容量进行迁移。根据上述对当前施压机的加压过程可知,导致当前施压机资源过载的任务是第二任务,但并非是第二任务的全部,而是第二任务中导致当前施压机的资源水位从80%上升到85%之间的任务线程,故本实施例选择将此部分任务线程从当前施压机迁移至其他施压机中,从而实现一次高效的容量迁移,且对压测过程产生的影响降到最低。
每台施压机均可存储最近三次或者最近两次的历史容量调度信息,以方便追溯是哪个任务中的哪些线程导致当前施压机的资源过载,方便定位需要迁移的任务容量。所述历史容量调度信息具体指每次任务控制调度时分配给施压机的任务ID以及在当前施压机加压了多少线程或者减压了多少线程等信息,每个施压机的历史容量调度信息通常通过栈类型的数据结构存储在每个施压机中,且本实施例对施压机容量过载的判定步骤设置在每次对施压机进行任务控制调度时进行,因此,通常栈顶存储的历史容量调度信息即为导致施压机资源过载的任务容量信息,极大地方便了对迁移容量的准确定位。
进一步的,所述基于设定规则对所述当前施压机的任务容量进行迁移之前,还包括:
读取所述当前施压机最近一次的历史容量调度信息;
根据所述历史容量调度信息确定所述当前施压机中需要被迁移的任务容量;
其中,每次对当前施压机进行任务控制调度时,通过栈类型的数据结构存储当前施压机的历史容量调度信息。假设对当前施压机一共进行了三次任务控制调度,分别为第一次任务控制调度、第二次任务控制调度和第三次任务控制调度,则在该场景下,所述最近一次的历史容量调度信息具体为所述第三次任务控制调度时对应的历史容量调度信息。根据所述历史容量调度信息确定当前施压机中需要被迁移的任务容量具体为从所述历史容量调度信息中分析出导致当前施压机资源过载的任务容量即任务线程,此部分任务容量即为需要被迁移的任务容量。
为了提高所有施压机的资源利用率以及压测效率,所述基于设定规则对所述当前施压机的任务容量进行迁移具体为:将所述需要被迁移的任务容量从当前施压机迁移至资源水位未达到第二设定阈值的任务关联的施压机,直到所述任务关联的所有施压机的资源水位均达到第二设定阈值;
若所述任务关联的所有施压机的资源水位均达到第二设定阈值且所述需要被迁移的任务容量还未全部迁移,则将剩余的任务容量迁移至非任务关联的施压机,直到非任务关联的所有施压机的资源水位达到第二设定阈值;
若资源池中所有的施压机的资源水位全部达到第二设定阈值时,所述需要被迁移的任务容量还未全部迁移,则将剩余任务容量继续迁移至所述任务关联的施压机,直到所述任务关联的所有施压机的资源水位均达到第三设定阈值;
若所述任务关联的所有施压机的资源水位均达到第三设定阈值且所述需要被迁移的任务容量还未全部迁移,则将剩余的任务容量迁移至非任务关联的施压机,直到非任务关联的所有施压机的资源水位达到第三设定阈值;其中,所述第一设定阈值大于所述第三设定阈值,所述第三设定阈值大于所述第二设定阈值;所述任务关联的施压机指同时参与所述任务的施压机,所述非任务关联的施压机指没有参与所述任务的施压机。
其中,所述任务关联的施压机具体指同时执行导致当前施压机资源过载的任务的施压机,所述非任务关联的施压机指不参与执行导致当前施压机资源过载的任务的施压机。所述第二设定阈值通常设置为50%,所述第三设定阈值通常设置为70%。
本实施例提供的一种容量迁移方法,当对当前施压机进行任务控制调度时,对当前施压机进行资源过载判定,当判定当前施压机存在资源过载问题时,对导致当前施压机资源过载的任务容量进行迁移,实现了对过载任务容量的精准迁移,高效解决了当前施压机资源过载的问题,通过将导致施压机资源过载的任务容量优先迁移至其他任务关联的施压机,使得其他任务关联的施压机继续执行压测任务,避免了多次重新执行相同的压测任务,提高了压测效率;当任务关联的施压机均不满足继续加压条件时,通过将过载的任务容量迁移至非任务关联施压机,实现了压测任务创建后无需再需人工干预则可一次执行成功,提高了压测效率以及用户体验度。
实施例二
图2为本发明实施例二提供的一种容量迁移方法流程示意图。在上述实施例的基础上,本实施例对容量迁移方案进行了进一步优化,优化的好处是进一步提高对施压机资源的充分利用以及更好地解决施压机资源过载问题。具体参见图2所示,该方法包括如下步骤:
210、当对当前施压机进行任务控制调度时,采集当前施压机的资源消耗信息。
220、基于所述资源消耗信息对所述当前施压机的资源水位进行评估。
230、当所述当前施压机的资源水位达到第一设定阈值时,对当前施压机进行上锁操作,以避免当前施压机的任务容量同时被迁移至多个目标施压机。
240、基于设定规则确定任务容量迁移的目标施压机,当确定任务容量迁移的目标施压机时,对所述目标施压机进行上锁操作,以避免多个当前施压机的任务容量同时向所述目标施压机迁移导致所述目标施压机资源过载。
其中,所述目标施压机具体指接收被迁移任务容量的施压机。所述目标施压机可根据上述实施例所述的设定规则进行确定,具体是:将需要被迁移的任务容量从当前施压机迁移至资源水位未达到第二设定阈值的任务关联的施压机,直到所述任务关联的所有施压机的资源水位均达到第二设定阈值;若所述任务关联的所有施压机的资源水位均达到第二设定阈值且所述需要被迁移的任务容量还未全部迁移,则将剩余的任务容量迁移至非任务关联的施压机,直到非任务关联的所有施压机的资源水位达到第二设定阈值;若资源池中所有的施压机的资源水位全部达到第二设定阈值时,所述需要被迁移的任务容量还未全部迁移,则将剩余任务容量继续迁移至所述任务关联的施压机,直到所述任务关联的所有施压机的资源水位均达到第三设定阈值;若所述任务关联的所有施压机的资源水位均达到第三设定阈值且所述需要被迁移的任务容量还未全部迁移,则将剩余的任务容量迁移至非任务关联的施压机,直到非任务关联的所有施压机的资源水位达到第三设定阈值;其中,所述第一设定阈值大于所述第三设定阈值,所述第三设定阈值大于所述第二设定阈值。
当所述当前施压机的资源水位达到第一设定阈值时,则可确定当前施压机存在资源过载问题,需要对当前施压机进行容量迁移,为了避免当前施压机的任务容量同时被迁移至多个目标施压机,可选择对当前施压机进行上锁操作;同理,为了避免多个当前施压机的任务容量同时向所述目标施压机迁移导致所述目标施压机资源过载,可选择对所述目标施压机进行上锁操作。具体的,施压机的唯一标识是IP(Internet Protocol,网络协议)信息,在进行任务容量迁移时,把当前施压机的IP信息与目标施压机的IP信息插入resource_lock的数据表中,即可实现对当前施压机以及目标施压机的上锁操作,当需要迁移的任务容量迁移完成后,把resource_lock的数据表中关于当前施压机的IP信息与目标施压机的IP信息记录删除即可。
进一步的,由于施压机创建新进程需要消耗一定的资源,为了实现对施压机资源的充分利用,将需要被迁移的任务容量迁移至目标施压机,包括:
若所述目标施压机已有的进程存在线程余位,则将所述需要被迁移的任务容量迁移至目标施压机已有的进程中,否则,在所述目标施压机中创建新进程,将所述需要被迁移的任务容量迁移至所述新进程中;其中,所述目标施压机指接收所述需要被迁移的任务容量的施压机。通常,每个进程可管理1000个线程。
250、将所述任务容量从当前施压机迁移至所述目标施压机。
本实施例提供的一种容量迁移方法,当确定当前施压机存在资源过载的问题需要进行任务容量迁移且确定好接收需要被迁移的任务容量的目标施压机时,对当前施压机以及目标施压机进行上锁操作,以实现所有任务通过串行的方式对每台施压机进行任务调度,一旦施压机发生资源过载时可快速识别导致施压机资源过载的任务容量,实现对过载任务容量的准确迁移,较好地解决了施压机资源过载问题,通过将过载任务容量迁移至目标施压机已有的进程中,避免了创建新进程对资源的消耗,进而节省了目标施压机对资源的消耗,提高了资源利用率。
实施例三
图3为本发明实施例三提供的一种容量迁移装置结构示意图。参见图3所示,所述装置包括:采集模块310、评估模块320和迁移模块330;
其中,采集模块310,用于当对当前施压机进行任务控制调度时,采集当前施压机的资源消耗信息;
评估模块320,用于基于所述资源消耗信息对所述当前施压机的资源水位进行评估;
迁移模块330,用于当所述当前施压机的资源水位达到第一设定阈值时,基于设定规则对所述当前施压机的任务容量进行迁移,以使所述当前施压机的资源水位下降至所述第一设定阈值以下。
进一步的,采集模块310具体用于:当所述当前施压机空闲时,通过系统信息收集和报告Sigar接口按照第一设定频率采集所述当前施压机的资源消耗信息;当所述当前施压机运行任务时,通过Sigar接口按照第二设定频率采集所述当前施压机的资源消耗信息;其中,所述第一设定频率小于所述第二设定频率。
进一步的,所述装置还包括:任务容量确定模块,用于在所述基于设定规则对所述当前施压机的任务容量进行迁移之前,读取所述当前施压机最近一次的历史容量调度信息,并根据所述历史容量调度信息确定所述当前施压机中需要被迁移的任务容量;其中,每次对当前施压机进行任务控制调度时,通过栈类型的数据结构存储当前施压机的历史容量调度信息。
进一步的,迁移模块330具体用于,将所述需要被迁移的任务容量从当前施压机迁移至资源水位未达到第二设定阈值的任务关联的施压机,直到所述任务关联的所有施压机的资源水位均达到第二设定阈值;若所述任务关联的所有施压机的资源水位均达到第二设定阈值且所述需要被迁移的任务容量还未全部迁移,则将剩余的任务容量迁移至非任务关联的施压机,直到非任务关联的所有施压机的资源水位达到第二设定阈值;若资源池中所有的施压机的资源水位全部达到第二设定阈值时,所述需要被迁移的任务容量还未全部迁移,则将剩余任务容量继续迁移至所述任务关联的施压机,直到所述任务关联的所有施压机的资源水位均达到第三设定阈值;若所述任务关联的所有施压机的资源水位均达到第三设定阈值且所述需要被迁移的任务容量还未全部迁移,则将剩余的任务容量迁移至非任务关联的施压机,直到非任务关联的所有施压机的资源水位达到第三设定阈值;其中,所述第一设定阈值大于所述第三设定阈值,所述第三设定阈值大于所述第二设定阈值;所述任务关联的施压机指同时参与所述任务的施压机,所述非任务关联的施压机指没有参与所述任务的施压机。
进一步的,迁移模块330具体用于:若所述目标施压机已有的进程存在线程余位,则将所述需要被迁移的任务容量迁移至目标施压机已有的进程中,否则,在所述目标施压机中创建新进程,将所述需要被迁移的任务容量迁移至所述新进程中,其中,所述目标施压机指接收所述需要被迁移的任务容量的施压机。
进一步的,所述装置还包括上锁模块,用于在所述基于设定规则对所述当前施压机的任务容量进行迁移之前,对当前施压机进行上锁操作,以避免当前施压机的任务容量同时被迁移至多个目标施压机,以及对任务容量迁移的目标施压机进行上锁操作,以避免多个当前施压机的任务容量同时向所述目标施压机迁移导致所述目标施压机资源过载。
进一步的,所述资源消耗信息包括中央处理单元CPU的使用率。
本实施例提供的一种容量迁移装置,当对当前施压机进行任务控制调度时,对当前施压机进行资源过载判定,当判定当前施压机存在资源过载问题时,对导致当前施压机资源过载的任务容量进行迁移,实现了对过载任务容量的精准迁移,高效解决了当前施压机资源过载的问题,通过将导致施压机资源过载的任务容量优先迁移至其他任务关联的施压机,使得其他任务关联的施压机继续执行压测任务,避免了多次重新执行相同的压测任务,提高了压测效率;当任务关联的施压机均不满足继续加压条件时,通过将过载的任务容量迁移至非任务关联施压机,实现了压测任务创建后无需再需人工干预则可一次执行成功,提高了压测效率以及用户体验度。
实施例四
图4为本发明实施例四提供的一种电子设备的结构示意图。如图4所示,该电子设备包括:处理器670、存储器671及存储在存储器671上并可在处理器670上运行的计算机程序;其中,处理器670的数量可以是一个或多个,图4中以一个处理器670为例;处理器670执行所述计算机程序时实现如上述实施例一中所述的容量迁移方法。如图4所示,所述电子设备还可以包括输入装置672和输出装置673。处理器670、存储器671、输入装置672和输出装置673可以通过总线或其他方式连接,图4中以通过总线连接为例。
存储器671作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中容量迁移装置/模块(例如,容量迁移装置中的采集模块310、评估模块320和迁移模块330等)。处理器670通过运行存储在存储器671中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述的容量迁移方法。
存储器671可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器671可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器671可进一步包括相对于处理器670远程设置的存储器,这些远程存储器可以通过网络连接至电子设备/存储介质。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置672可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。输出装置673可包括显示屏等显示设备。
实施例五
本发明实施例五还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种容量迁移方法,该方法包括:
当对当前施压机进行任务控制调度时,采集当前施压机的资源消耗信息;
基于所述资源消耗信息对所述当前施压机的资源水位进行评估;
当所述当前施压机的资源水位达到第一设定阈值时,基于设定规则对所述当前施压机的任务容量进行迁移,以使所述当前施压机的资源水位下降至所述第一设定阈值以下。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的容量迁移相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,存储介质,或者网络设备等)执行本发明各个实施例所述的。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (9)
1.一种容量迁移方法,其特征在于,所述方法包括:
当对当前施压机进行任务控制调度时,采集当前施压机的资源消耗信息;
基于所述资源消耗信息对所述当前施压机的资源水位进行评估;
当所述当前施压机的资源水位达到第一设定阈值时,基于设定规则对所述当前施压机的任务容量进行迁移,以使所述当前施压机的资源水位下降至所述第一设定阈值以下;其中,所述任务容量具体指执行压测任务给当前施压机施加的线程;
其中,所述基于设定规则对所述当前施压机的任务容量进行迁移之前,还包括:
读取所述当前施压机最近一次的历史容量调度信息;
根据所述历史容量调度信息确定所述当前施压机中需要被迁移的任务容量;其中,所述需要被迁移的任务容量包括导致当前施压机资源过载的任务容量,每次对当前施压机进行任务控制调度时,通过栈类型的数据结构存储当前施压机的历史容量调度信息。
2.根据权利要求1所述的方法,其特征在于,所述采集当前施压机的资源消耗信息,包括:
当所述当前施压机空闲时,通过系统信息收集和报告Sigar接口按照第一设定频率采集所述当前施压机的资源消耗信息;
当所述当前施压机运行任务时,通过Sigar接口按照第二设定频率采集所述当前施压机的资源消耗信息;
其中,所述第一设定频率小于所述第二设定频率。
3.根据权利要求1所述的方法,其特征在于,所述基于设定规则对所述当前施压机的任务容量进行迁移,以使所述当前施压机的资源水位下降至所述第一设定阈值以下,包括:
将所述需要被迁移的任务容量从当前施压机迁移至资源水位未达到第二设定阈值的任务关联的施压机,直到所述任务关联的所有施压机的资源水位均达到第二设定阈值;
若所述任务关联的所有施压机的资源水位均达到第二设定阈值且所述需要被迁移的任务容量还未全部迁移,则将剩余的任务容量迁移至非任务关联的施压机,直到非任务关联的所有施压机的资源水位达到第二设定阈值;
若资源池中所有的施压机的资源水位全部达到第二设定阈值时,所述需要被迁移的任务容量还未全部迁移,则将剩余任务容量继续迁移至所述任务关联的施压机,直到所述任务关联的所有施压机的资源水位均达到第三设定阈值;
若所述任务关联的所有施压机的资源水位均达到第三设定阈值且所述需要被迁移的任务容量还未全部迁移,则将剩余的任务容量迁移至非任务关联的施压机,直到非任务关联的所有施压机的资源水位达到第三设定阈值;其中,所述第一设定阈值大于所述第三设定阈值,所述第三设定阈值大于所述第二设定阈值;所述任务关联的施压机指同时参与所述任务的施压机,所述非任务关联的施压机指没有参与所述任务的施压机。
4.根据权利要求3所述的方法,其特征在于,所述基于设定规则对所述当前施压机的任务容量进行迁移,以使所述当前施压机的资源水位下降至所述第一设定阈值以下,包括:
若目标施压机已有的进程存在线程余位,则将所述需要被迁移的任务容量迁移至目标施压机已有的进程中,否则,在所述目标施压机中创建新进程,将所述需要被迁移的任务容量迁移至所述新进程中;
其中,所述目标施压机指接收所述需要被迁移的任务容量的施压机。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述基于设定规则对所述当前施压机的任务容量进行迁移之前,所述方法还包括:
对当前施压机进行上锁操作,以避免当前施压机的任务容量同时被迁移至多个目标施压机;
对任务容量迁移的目标施压机进行上锁操作,以避免多个当前施压机的任务容量同时向所述目标施压机迁移导致所述目标施压机资源过载。
6.根据权利要求1-4任一项所述的方法,其特征在于,所述资源消耗信息包括中央处理单元CPU的使用率。
7.一种容量迁移装置,其特征在于,所述装置包括:
采集模块,用于当对当前施压机进行任务控制调度时,采集当前施压机的资源消耗信息;
评估模块,用于基于所述资源消耗信息对所述当前施压机的资源水位进行评估;
迁移模块,用于当所述当前施压机的资源水位达到第一设定阈值时,基于设定规则对所述当前施压机的任务容量进行迁移,以使所述当前施压机的资源水位下降至所述第一设定阈值以下;其中,所述任务容量具体指执行压测任务给当前施压机施加的线程;
所述装置还包括:任务容量确定模块,用于在所述基于设定规则对所述当前施压机的任务容量进行迁移之前,读取所述当前施压机最近一次的历史容量调度信息,并根据所述历史容量调度信息确定所述当前施压机中需要被迁移的任务容量;其中,所述需要被迁移的任务容量包括导致当前施压机资源过载的任务容量,每次对当前施压机进行任务控制调度时,通过栈类型的数据结构存储当前施压机的历史容量调度信息。
8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-6中任一项所述的容量迁移方法。
9.一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时实现如权利要求1-6中任一项所述的容量迁移方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811191830.1A CN109343949B (zh) | 2018-10-12 | 2018-10-12 | 一种容量迁移方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811191830.1A CN109343949B (zh) | 2018-10-12 | 2018-10-12 | 一种容量迁移方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109343949A CN109343949A (zh) | 2019-02-15 |
CN109343949B true CN109343949B (zh) | 2021-06-15 |
Family
ID=65309818
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811191830.1A Active CN109343949B (zh) | 2018-10-12 | 2018-10-12 | 一种容量迁移方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109343949B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095576A (zh) * | 2016-06-14 | 2016-11-09 | 上海交通大学 | 虚拟化多核环境下非一致性i/o访问虚拟机资源迁移方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103246550A (zh) * | 2012-02-09 | 2013-08-14 | 深圳市腾讯计算机系统有限公司 | 一种基于容量的多任务调度方法及系统 |
CN103336574A (zh) * | 2013-07-23 | 2013-10-02 | 北京百度网讯科技有限公司 | 数据中心节能控制方法与装置 |
CN105279023B (zh) * | 2015-11-27 | 2018-06-26 | 浪潮(北京)电子信息产业有限公司 | 一种虚拟机迁移方法和装置 |
-
2018
- 2018-10-12 CN CN201811191830.1A patent/CN109343949B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095576A (zh) * | 2016-06-14 | 2016-11-09 | 上海交通大学 | 虚拟化多核环境下非一致性i/o访问虚拟机资源迁移方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109343949A (zh) | 2019-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109684228B (zh) | 一种性能测试方法、装置、系统和存储介质 | |
CN109871328B (zh) | 一种软件测试方法及装置 | |
US8572621B2 (en) | Selection of server for relocation of application program based on largest number of algorithms with identical output using selected server resource criteria | |
CN109284229B (zh) | 一种基于qps的动态调整方法以及相关设备 | |
CN107707638B (zh) | 一种分布式云压测机资源管理系统及方法 | |
CN104410543A (zh) | 基于云资源的自动化测试方法和系统 | |
CN113590403B (zh) | 压力测试方法、装置、系统、电子设备、存储介质及产品 | |
CN103856337A (zh) | 资源占用率获取方法、提供方法、系统及服务器 | |
CN111966289A (zh) | 基于Kafka集群的分区优化方法和系统 | |
CN105791166B (zh) | 一种负载均衡分配的方法及系统 | |
CN109144846B (zh) | 用于测试服务器的测试方法和装置 | |
CN110297743B (zh) | 一种负载测试方法、装置和存储介质 | |
CN109857633B (zh) | 一种任务算力估计方法、装置和存储介质 | |
CN107634878B (zh) | 一种性能测试管理平台 | |
CN107370783B (zh) | 一种云计算集群资源的调度方法及装置 | |
CN111382031A (zh) | 测试方法及装置 | |
US20230376397A1 (en) | Method and System for Determining Interval Time for Testing of Server, and Device and Medium | |
CN114625654A (zh) | 一种测试方法及其相关设备 | |
CN109343949B (zh) | 一种容量迁移方法、装置、电子设备及存储介质 | |
CN109992408B (zh) | 一种资源分配方法、装置、电子设备和存储介质 | |
CN107092556B (zh) | 测试方法、装置及设备 | |
CN106886477B (zh) | 一种云系统中监控阈值设定方法及装置 | |
CN112015326B (zh) | 集群数据处理方法、装置、设备及存储介质 | |
CN106060123B (zh) | 分布式数据系统的数据采集方法及分布式数据系统 | |
CN108196992B (zh) | 一种性能自动化测试方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231221 Address after: Room 1401-1408, 10th to 13th and 14th floors, Building 2, China Shipbuilding Heavy Industry Technology Building, No. 176 Haier Road, Laoshan District, Qingdao City, Shandong Province, 266035 Patentee after: Qingdao Qingzi Engineering Consulting Co.,Ltd. Address before: 11 / F, building B1, phase 4.1, software industry, No.1, Software Park East Road, Wuhan East Lake Development Zone, Wuhan City, Hubei Province, 430070 Patentee before: WUHAN DOUYU NETWORK TECHNOLOGY Co.,Ltd. |