CN103425536B - 一种面向分布式系统性能测试的测试资源管理方法 - Google Patents

一种面向分布式系统性能测试的测试资源管理方法 Download PDF

Info

Publication number
CN103425536B
CN103425536B CN201310376714.8A CN201310376714A CN103425536B CN 103425536 B CN103425536 B CN 103425536B CN 201310376714 A CN201310376714 A CN 201310376714A CN 103425536 B CN103425536 B CN 103425536B
Authority
CN
China
Prior art keywords
test
resource
assignment
test resource
strategy
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
Application number
CN201310376714.8A
Other languages
English (en)
Other versions
CN103425536A (zh
Inventor
黄涛
钟华
魏峻
王伟
李萱
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Software of CAS
Original Assignee
Institute of Software of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Software of CAS filed Critical Institute of Software of CAS
Priority to CN201310376714.8A priority Critical patent/CN103425536B/zh
Publication of CN103425536A publication Critical patent/CN103425536A/zh
Application granted granted Critical
Publication of CN103425536B publication Critical patent/CN103425536B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明涉及一种面向分布式系统性能测试的测试资源管理方法,针对多租户共享的测试资源,通过引入四种不同的资源管理策略对测试任务进行准入和调度,在实现测试资源共享的同时,保障了租户服务质量;同时根据测试任务对测试资源的需求,实现测试资源的弹性供给,同时,能够适应测试资源池规模的动态变化,满足云计算的弹性资源管理需求。

Description

一种面向分布式系统性能测试的测试资源管理方法
技术领域
本发明涉及一种面向分布式系统性能测试的测试资源管理方法,属于软件技术领域。
背景技术
分布式系统以客户端/服务器或浏览器/服务器的方式部署,此类系统的性能测试通过自动化的测试工具模拟正常、峰值以及异常的负载条件来对服务器端系统的各项性能指标进行测试,验证系统能否达到用户提出的性能指标,同时发现系统存在的性能瓶颈。
性能测试根据测试需求模拟不同规模的负载量,需要大量的测试软件和硬件投入,是典型的资源密集型工作。不同规模负载的测试需求意味着性能测试所需要的软硬件资源规模是动态变化的,而根据峰值需求配置软硬件资源将会带来大量的资源投入和严重的资源浪费。
云计算是一种新型的计算模式,具有资源池化管理、多租户共享、弹性供给等特性,本质上是一种新型的资源管理和使用模式。云计算为系统性能测试提供了新的发展机遇。基于云计算的性能测试服务屏蔽了软硬件测试资源的管理复杂性,并将测试资源集中管理,形成测试资源池。
测试资源池可以同时为多个租户提供测试服务,称为多租户共享。这种共享模式在提高资源利用率的同时,也带来了租户之间的性能干扰问题。当测试资源相对有限,或者租户对测试资源的使用量增加时,不同租户之间对共享测试资源的争用会造成性能干扰,进而导致租户的服务等级目标(Service-Level Objective,简称SLO)违约,影响租户服务质量的公平性。例如,性能干扰会导致无法在租户期望的时间内完成测试任务。
发明内容
本发明的目的在于提供一种面向分布式系统性能测试的测试资源管理方法,在通过多租户共享提高测试资源利用率的同时,避免租户之间的性能干扰,保障租户服务等级目标要求。
本发明技术解决方案:
为了实现上述目的,本发明方法主要包括以下要素:测试资源、测试资源池、负载发生器、计算机服务器、等待队列、测试任务。
(1)测试资源
测试资源表示性能测试所需的软件、硬件资源。
(2)测试资源池
测试资源池是测试资源的池化体现,它包括一组测试资源。
(3)测试任务
测试任务定义负载发生量、测试时长以及测试期限(租户期望测试任务完成的时间,即SLO)等,由租户提交给测试资源执行。
(4)负载发生器
负载发生器是测试资源中的软件资源,用于生成测试任务所要求的负载。
(5)计算机服务器
计算机服务器是运行负载发生器的硬件资源,可以是虚拟机或物理机。在本发明中,将安装了负载发生器的计算机服务器作为测试资源的基本单元。
(6)等待队列
测试资源包含一个等待队列,用于对测试任务进行排队。当测试资源正在执行测试任务时,新提交的测试任务将进入其等待队列。
在上述要素基础上,本发明方法使用等待、插入、分发、初始化四种测试资源管理策略,进行测试任务的准入和调度,其中:
(1)等待策略表示将测试任务加入到给定测试资源的等待队列的队尾。
(2)插入策略表示将测试任务放置在给定测试资源的等待队列的某个位置。该策略将影响等待队列中已经存在的测试任务的等待时间。
(3)分发策略表示将测试任务的负载发生量进行等量划分,分发给多个测试资源并行执行。
(4)初始化策略将测试任务分配给未执行任何测试任务的空闲测试资源。
利用上述策略,针对每个租户提交的测试任务,本发明通过以下步骤实现测试任务的准入和调度:
1、统计测试资源池中所有正在执行测试任务的非空闲测试资源;
2、针对步骤1中统计得到的非空闲测试资源,根据每一个测试资源的配置计算其最大负载发生量并进行排序,得到升序排列集合;
3、针对步骤2得到的集合,将集合中各个测试资源的最大负载发生量与新提交测试任务的负载发生量进行比较,搜索最大负载发生量比测试任务所需负载发生量大的第一个测试资源;如果存在,则进入步骤4,否则进入步骤6;
4、从集合中步骤3所选的测试资源至最后一个测试资源进行遍历,判断是否存在测试资源,能够通过等待策略或者插入策略满足该测试任务的服务水平目标;如果存在,则由所选测试资源执行测试任务,否则进入步骤5;
5、遍历集合中位于步骤3所选测试资源之前的所有测试资源,即遍历最大负载发生量小于测试任务的负载发生量的测试资源,判断是否存在两个测试资源,能够通过分发策略和等待策略满足测试任务的服务水平目标;如果存在,则由所选测试资源执行测试任务,否则进入步骤6;
6、遍历测试资源池中的所有空闲测试资源,判断是否存在一个空闲测试资源,能够通过初始化策略满足测试任务的服务水平目标;如果存在,则由所选测试资源执行测试任务;如果不存在,则判断是否存在一组空闲测试资源,能够通过分发策略和初始化策略,满足测试任务的服务水平目标;如果存在,则由所选测试资源执行测试任务;如果不存在,则拒绝执行测试任务。
本发明提出一种面向分布式系统性能测试的测试资源管理方法,针对多租户共享的测试资源,进行租户测试任务的准入和调度,保障了租户服务质量。本发明方法具有以下优点:
(1)本发明方法通过引入四种不同的资源管理策略对测试任务进行准入和调度,在实现测试资源共享的同时,保障了租户服务质量。
(2)本发明方法根据测试任务对测试资源的需求,实现测试资源的弹性供给,同时,能够适应测试资源池规模的动态变化,满足云计算的弹性资源管理需求。
附图说明
图1为本发明的基于虚拟机的测试资源池的基本组成结构;
图2为本发明中等待策略流程图;
图3为本发明中插入策略流程图;
图4为本发明中分发策略流程图;
图5为本发明中初始化策略流程图;
图6为本发明方法的实现流程图。
具体实施方式
以下结合具体实施例和附图对本发明作更详细的说明。
本发明实施例的使用环境是基于虚拟机的分布式系统性能测试平台,该平台使用云计算模式中常用的虚拟机(VM)搭建测试资源池。在本实施例的测试资源池中,每个虚拟机实例代表一个测试资源,并部署一个负载发生器实例以及等待队列,结构如图1所示。进一步,本发明方法针对租户提交的测试任务进行准入和调度,保障租户的服务质量。
在基于虚拟机的分布式系统性能测试平台中,针对测试资源池中的每个虚拟机实例的具体配置(CPU、内存、网络等),估算该测试资源的最大负载发生量;租户通过平台设置测试任务的负载发生量、测试时长以及测试期限等信息。当测试任务提交时,本发明方法结合测试资源的最大负载发生量评估值与测试任务的相关信息,利用等待、插入、分发、初始化等四种测试资源管理策略,进行测试任务的准入和调度。
在本实施例中,等待、插入、分发、初始化等四种测试资源管理策略的具体流程如下:
1)等待策略
等待策略的具体实施方式如图2所示。首先,遍历测试资源池内所有正在执行测试任务的虚拟机实例,判断是否存在一个虚拟机实例,测试任务加入其等待队列后,能够保证该任务的测试期限要求。如果存在,则将测试任务加入所选虚拟机实例的等待队列的队尾,并返回True。如果不存在,则返回False。
2)插入策略
插入策略的具体实施方式如图3所示。首先,遍历测试资源池内所有正在执行测试任务的虚拟机实例,判断是否存在一个虚拟机实例,通过对其等待队列中已经接受的测试任务的执行时间进行调整,产生空闲时间,并将新提交的测试任务安排在空闲时间内从而满足队列内所有任务的测试期限要求。如果存在,则将测试任务插入到所选虚拟机实例的等待队列,并返回True。如果不存在,则返回False。
3)分发策略
分发策略的具体实施方式如图4所示。首先,将测试任务依照负载发生量等分为若干子任务,然后遍历测试资源池内所有正在执行测试任务的虚拟机实例,判断是否存在与子任务等量的虚拟机实例,可以按照等待策略执行这些子任务,并保证所有子任务同时启动。如果存在,则将子任务分配到的所选虚拟机实例的等待队列末尾,并返回True。如果不存在,则返回False。
4)初始化策略
初始化策略的具体实施方式如图5所示。首先,遍历测试资源池内所有空闲虚拟机实例,判断是否存在一个虚拟机实例,能够保证测试任务的测试期限要求。如果存在,则将所选虚拟机实例进行初始化,启动负载发生器,并将测试任务加入所选虚拟机实例的等待队列的队尾,返回True。如果不存在,则返回False。
利用上述策略,如图6所示,本实施例的具体实现流程如下:
1、统计测试资源池中所有正在执行测试任务的虚拟机实例,数量为N;
2、针对步骤1中的N个虚拟机实例,根据虚拟机的资源配置计算虚拟机实例VMi的最大负载发生量LCmax i(1≤i≤N)并进行升序排序,得到N个虚拟机实例的升序排列集合,使得LCmax i<LCmax j,且i<j;
3、针对步骤2得到的集合,将集合中各虚拟机实例的最大负载发生量LCmax i与新提交的测试任务的负载发生量LCnew进行对比,判断是否能够找到第K个虚拟机实例VMK,使得LCmax K-1≤LCnew<LCmax K;如果存在,则进入步骤4,否则进入步骤6;
4、对集合中的VMK至VMN进行遍历,判断是否存在一个虚拟机实例,能够通过等待策略或者插入策略满足测试任务的服务水平目标;如果存在,则由所选虚拟机实例执行测试任务,否则进入步骤5;
5、对集合中的VM1至VMK-1进行遍历,判断是否存VMe和VMf(0<e<f<K),能够通过分发策略和等待策略满足测试任务的服务水平目标;如果存在,则由所选的两个虚拟机实例执行测试任务,否则进入步骤6;
6、遍历测试资源池中的所有空闲虚拟机实例,判断是否存在一个空闲虚拟机实例,能够通过初始化策略满足测试任务的服务水平目标;如果存在,则由所选虚拟机实例执行新的测试任务;如果不存在,则遍历测试资源池中的所有空闲虚拟机实例,判断是否存在一组空闲虚拟机实例,能够通过分发策略和初始化策略满足测试任务的服务水平目标;如果存在,则由所选虚拟机实例执行测试任务;如果不存在,则拒绝执行测试任务。
本发明未详细阐述部分属于本领域公知技术。
以上所述,仅为本发明部分具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本领域的人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

Claims (1)

1.一种面向分布式系统性能测试的测试资源管理方法,其特征在于:所述面向分布式系统包括以下要素:测试资源、测试资源池、负载发生器、计算机服务器、等待队列、测试任务;
(1)测试资源
测试资源表示性能测试所需的软件、硬件资源;
(2)测试资源池
测试资源池是测试资源的池化体现,它包括一组测试资源;
(3)测试任务
测试任务定义负载发生量、测试时长以及测试期限,所述测试期限是租户期望测试任务完成的时间,即SLO,由租户提交给测试资源执行;
(4)负载发生器
负载发生器是测试资源中的软件资源,用于生成测试任务所要求的负载;
(5)计算机服务器
计算机服务器是运行负载发生器的硬件资源,是虚拟机或物理机;将安装了负载发生器的计算机服务器作为测试资源的基本单元;
(6)等待队列
测试资源包含一个等待队列,用于对测试任务进行排队;当测试资源正在执行测试任务时,新提交的测试任务将进入其等待队列;
在上述要素基础上,采用等待、插入、分发、初始化四种测试资源管理策略,进行测试任务的准入和调度,其中:
(21)等待策略表示将测试任务加入到给定测试资源的等待队列的队尾;
(22)插入策略表示将测试任务放置在给定测试资源的等待队列的某个位置,该策略将影响等待队列中已经存在的测试任务的等待时间;
(23)分发策略表示将测试任务的负载发生量进行等量划分,分发给多个测试资源并行执行;
(24)初始化策略将测试任务分配给未执行任何测试任务的空闲测试资源;
利用上述策略,针对每个租户提交的测试任务,通过以下步骤实现测试任务的准入和调度:
(31)统计测试资源池中所有正在执行测试任务的非空闲测试资源;
(32)对步骤(31)中统计得到的非空闲测试资源,根据每一个测试资源的配置计算其最大负载发生量并进行排序,得到升序排列集合;
(33)对步骤(32)得到的集合,将集合中各个测试资源的最大负载发生量与新提交测试任务的负载发生量进行比较,搜索最大负载发生量比测试任务所需负载发生量大的第一个测试资源;如果存在,则进入步骤(34),否则进入步骤(36);
(34)从集合中步骤(33)所选的测试资源至最后一个测试资源进行遍历,判断是否存在测试资源,能够通过等待策略或者插入策略满足该测试任务的服务水平目标;如果存在,则由所选测试资源执行测试任务,否则进入步骤(35);
(35)遍历集合中位于步骤(3)所选测试资源之前的所有测试资源,即遍历最大负载发生量小于测试任务的负载发生量的测试资源,判断是否存在两个测试资源,能够通过分发策略和等待策略满足测试任务的服务水平目标;如果存在,则由所选测试资源执行测试任务,否则进入步骤(36);
(36)遍历测试资源池中的所有空闲测试资源,判断是否存在一个空闲测试资源,能够通过初始化策略满足测试任务的服务水平目标;如果存在,则由所选测试资源执行测试任务;如果不存在,则判断是否存在一组空闲测试资源,能够通过分发策略和初始化策略,满足测试任务的服务水平目标;如果存在,则由所选测试资源执行测试任务;如果不存在,则拒绝执行测试任务。
CN201310376714.8A 2013-08-26 2013-08-26 一种面向分布式系统性能测试的测试资源管理方法 Active CN103425536B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310376714.8A CN103425536B (zh) 2013-08-26 2013-08-26 一种面向分布式系统性能测试的测试资源管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310376714.8A CN103425536B (zh) 2013-08-26 2013-08-26 一种面向分布式系统性能测试的测试资源管理方法

Publications (2)

Publication Number Publication Date
CN103425536A CN103425536A (zh) 2013-12-04
CN103425536B true CN103425536B (zh) 2017-03-15

Family

ID=49650326

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310376714.8A Active CN103425536B (zh) 2013-08-26 2013-08-26 一种面向分布式系统性能测试的测试资源管理方法

Country Status (1)

Country Link
CN (1) CN103425536B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106294037A (zh) * 2015-05-25 2017-01-04 中兴通讯股份有限公司 拷机测试方法及装置
CN105955885B (zh) * 2016-04-28 2018-06-29 中国农业银行股份有限公司 一种工作流自动化测试系统及方法
CN106452830A (zh) * 2016-08-22 2017-02-22 平安科技(深圳)有限公司 测试任务执行机分配方法和装置
CN106713484B (zh) * 2017-01-10 2020-09-01 微梦创科网络科技(中国)有限公司 一种性能压测实现方法、系统及服务器
CN107734050B (zh) * 2017-10-31 2021-03-02 四川睿象科技有限公司 一种负载机分配方法、计算设备及负载机分配系统
CN108664393B (zh) * 2018-04-03 2021-09-14 广东电网有限公司信息中心 一种多服务器资源池兼容性测试与修正方法
CN109117244B (zh) * 2018-06-13 2021-12-03 成都颠峰科创信息技术有限公司 一种虚拟机资源申请排队机制的实现方法
CN110795334B (zh) * 2019-09-09 2023-12-29 连连银通电子支付有限公司 一种测试装置和方法
CN111082971B (zh) * 2019-11-25 2021-07-20 南京航空航天大学 一种面向云负载测试的共享式资源分配方法
CN111343258A (zh) * 2020-02-17 2020-06-26 中国建设银行股份有限公司 对等节点的管理方法、装置、存储介质及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1963763A (zh) * 2005-11-09 2007-05-16 同济大学 网格环境下动态在线式任务调度系统及其调度方法
CN101958808A (zh) * 2010-10-18 2011-01-26 华东交通大学 一种服务于多网格接入的集群任务调度管理器
CN102681889A (zh) * 2012-04-27 2012-09-19 电子科技大学 一种云计算开放平台的调度方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1963763A (zh) * 2005-11-09 2007-05-16 同济大学 网格环境下动态在线式任务调度系统及其调度方法
CN101958808A (zh) * 2010-10-18 2011-01-26 华东交通大学 一种服务于多网格接入的集群任务调度管理器
CN102681889A (zh) * 2012-04-27 2012-09-19 电子科技大学 一种云计算开放平台的调度方法

Also Published As

Publication number Publication date
CN103425536A (zh) 2013-12-04

Similar Documents

Publication Publication Date Title
CN103425536B (zh) 一种面向分布式系统性能测试的测试资源管理方法
CN102567077B (zh) 一种基于博弈论的虚拟化资源分配方法
Lama et al. Aroma: Automated resource allocation and configuration of mapreduce environment in the cloud
CN102567080B (zh) 一种云计算环境中的面向负载均衡的虚拟机择位系统
CN104243617B (zh) 一种异构集群中面向混合负载的任务调度方法及系统
CN103365727B (zh) 一种云计算环境中的主机负载预测方法
CN109254842A (zh) 分布式流式系统的资源管理方法、装置及可读存储介质
CN103699446A (zh) 基于量子粒子群优化算法的多目标工作流动态调度方法
Chen et al. Deep learning research and development platform: Characterizing and scheduling with qos guarantees on gpu clusters
CN108108245B (zh) 一种云平台宽节点科学工作流的混合型调度方法及系统
Singh et al. Energy based efficient resource scheduling: a step towards green computing
Zhou et al. Concurrent workflow budget-and deadline-constrained scheduling in heterogeneous distributed environments
CN106775932A (zh) 一种云计算系统中随机事件触发的实时工作流调度方法
Jiang et al. Virtual machine power accounting with shapley value
Nanda et al. Racc: resource-aware container consolidation using a deep learning approach
CN106502790A (zh) 一种基于数据分布的任务分配优化方法
Hasan et al. A model-driven approach for predicting and analysing the execution efficiency of multi-core processing
Akoglu et al. Putting data science pipelines on the edge
Zhao et al. Performance and cost-aware task scheduling via deep reinforcement learning in cloud environment
Koneru et al. Resource allocation method using scheduling methods for parallel data processing in cloud
Davidović et al. Parallel local search to schedule communicating tasks on identical processors
Wang et al. Improving utilization through dynamic VM resource allocation in hybrid cloud environment
Mala et al. Resource allocation in cloud using enhanced max-min algorithm
Chi et al. A game theoretical method for auto-scaling of multi-tiers web applications in cloud
El-Refaey et al. Virtual systems workload characterization: An overview

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant