CN116795552B - 一种基于MapReduce的大规模负载测试方法及其评价方法 - Google Patents

一种基于MapReduce的大规模负载测试方法及其评价方法 Download PDF

Info

Publication number
CN116795552B
CN116795552B CN202310830308.8A CN202310830308A CN116795552B CN 116795552 B CN116795552 B CN 116795552B CN 202310830308 A CN202310830308 A CN 202310830308A CN 116795552 B CN116795552 B CN 116795552B
Authority
CN
China
Prior art keywords
task
test
data
load
map
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
CN202310830308.8A
Other languages
English (en)
Other versions
CN116795552A (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.)
Harbin Institute of Technology
Original Assignee
Harbin Institute of Technology
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 Harbin Institute of Technology filed Critical Harbin Institute of Technology
Priority to CN202310830308.8A priority Critical patent/CN116795552B/zh
Publication of CN116795552A publication Critical patent/CN116795552A/zh
Application granted granted Critical
Publication of CN116795552B publication Critical patent/CN116795552B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

一种基于MapReduce的大规模负载测试方法及其评价方法,属于计算机技术领域。为解决大规模分布式负载测试的精度和性能问题。本发明生成大规模负载测试任务文件;分布式缓存对大规模负载测试任务文件进行分发:Hadoop分布式文件系统对大规模负载测试任务文件进行负载测试任务文件的预处理,然后插入同步检测点,得到Map任务分片数据;对得到的Map任务分片数据输入到Map任务进行大规模负载模拟测试,得到大规模负载模拟测试中间数据输入到Reduce任务进行数据分析、数据回收,将Reduce输出结果存储到Hadoop分布式文件系统中。本发明实现测试工具的自动化部署、启动和关闭,具有良好的容错性。

Description

一种基于MapReduce的大规模负载测试方法及其评价方法
技术领域
本发明属于计算机技术领域,具体涉及一种基于MapReduce的大规模负载测试方法及其评价方法。
背景技术
互联网和移动技术的成熟与发展,催生出众多大型分布式软件系统。无论是电商系统,还是即时通讯系统,都需要支撑亿级用户的并发访问。为提高软件系统的性能与服务质量,需要在闲时或发布前对系统进行大规模负载测试,以期获取系统的吞吐量、可用性、可靠性以及成本费用等信息,为识别系统瓶颈与优化系统配置等提供参考。负载测试是指通过评估软件系统在负载下的行为以检测负载相关问题的过程。负载相关的问题是指在负载压力下系统才会出现的问题,该类测试需要使用负载发生器模拟大量在线用户,并按照一定规则对系统进行并发访问。在测试过程中需要持续的监控和收集系统的执行日志和事件日志。最后由测试人员分析收集到的日志数据,以检测软件系统的异常行为。在进行负载测试时,测试用例可以从历史数据中获取,以保证负载的真实性。与此同时测试一般会持续数小时或数天时间来重现一些规律型负载。因此,大型分布式软件系统的负载测试通常需要模拟大量并发用户对目标系统发送访问请求,并回收需要分析的测试数据。单次大规模分布式负载测试可以产生GB,甚至TB级的数据量,这使得模拟负载和测试数据的回收分析都变得异常困难。在面向大型分布式软件系统的负载测试时,传统的单机版负载测试工具已然不能满足大规模负载模拟与海量测试数据分析的需求。因此需要使用分布式相关技术,利用集群进行负载模拟、日志收集和数据分析。
目前已有许多成熟的负载测试工具,可分为两大类:商业负载测试工具和开源负载测试工具。商业化负载测试工具的代表软件是惠普公司的LoadRunner。该软件一般为特定需求的客户开发,并经过全面测试,具有稳定性高和评测结果准确等优点。然而商用价格昂贵,且二次开发难度较大。
开源负载测试工具的代表软件是Apache JMeter,相对于商业软件,开源软件具有以下优势:首先,可以大幅降低IT投入,该类软件一般都是免费的。其次,更加灵活的订制和开发。用户可以在遵守约定的情况下,进行二次开发。第三,具有更便捷的技术支持,测试人员甚至直接可以和工具的开发人员进行交流。为了在分布式系统日志中准确地模拟和重现高强度工作负载,需要采用分布式方法。虽然JMeter负载测试工具提供了分布式框架用于进行大规模的负载测试,但在测试过程中则过度依赖主节点,并会遇到以下问题:(1)容错性差。无论主节点还是从节点,只要有一个节点在测试过程中出现问题,均会导致整体测试的失败。(2)测试数据的存储与分析存在问题。所有从节点的测试数据都需要收集到主节点。在测试结束后,仅有主节点独立完成测试数据分析。这种方式无法满足海量测试数据的存储与分析需求。(3)在分布式负载模拟的过程中,子任务间缺乏有效同步措施,无法精确复现复杂的负载场景。(4)一般需要为大规模负载测试构建专用集群,并需要手动部署测试软件,整个过程费事费力。
发明内容
本发明要解决的问题是大规模分布式负载测试的精度和性能问题,提出一种基于MapReduce的大规模负载测试方法及其评价方法。
为实现上述目的,本发明通过以下技术方案实现:
一种基于MapReduce的大规模负载测试方法,包括如下步骤:
S1、生成大规模负载测试任务文件;
S2、分布式缓存对大规模负载测试任务文件进行分发:Hadoop分布式文件系统对大规模负载测试任务文件进行负载测试任务文件的预处理,然后插入同步检测点,得到Map任务分片数据;
S3、对步骤S2得到的Map任务分片数据输入到Map任务进行大规模负载模拟测试,得到大规模负载模拟测试中间数据;
S4、对步骤S3得到的大规模负载模拟测试中间数据输入到Reduce任务进行数据分析、数据回收,将Reduce输出结果存储到Hadoop分布式文件系统中。
进一步的,步骤S1中利用主控模块生成每个Map任务需要执行的负载测试命令,同时主控模块负责向Hadoop分布式文件系统按照并行任务数提交大规模负载测试任务文件。
进一步的,步骤S2的具体实现方法包括如下步骤:
S2.1、大规模负载测试任务文件的并行化处理的具体实现方法为通过改变逻辑分片的数量间接控制Map任务的数量;逻辑分片的数量由大规模负载测试任务文件大小和大规模负载测试任务文件数量共同决定,逻辑分片的计算表达式为:
InputSplitSize=max(SplitMinSize,min(SplitMaxSize,BlockSize))
其中,InputSplitSize为输入逻辑分片大小,SplitMinSize为输入逻辑分片的最小值,SplitMaxSize为输入逻辑分片的最大值,BlockSize为分布式文件系统的块大小;
S2.2、设置大规模负载测试任务文件的控制规则,具体实现方法为:
S2.2.1、将每个负载测试任务执行的模拟参数放入独立的文件中,生成负载测试任务模拟参数文件;
S2.2.2、对比步骤S2.2.1生成的负载测试任务模拟参数文件的大小和逻辑分片的大小,如果负载测试任务模拟参数文件的大小超过逻辑分片的大小,则通过调整MapReduce作业的SplitMinSize,以此来确保每个负载测试任务模拟参数文件仅对应一个逻辑分片;
S2.3、设置基于逻辑分片信息的调度规则,具体实现方法为:
S2.3.1、首先通过作业的上下文信息,获取Map任务的初始逻辑分片信息和逻辑分片所属的主机信息;
S2.3.2、计算获得每个节点需要平均分配的任务个数;
S2.3.3、对于每个逻辑分片首先考虑本地性,当某个逻辑分片中所属的某个主机节点可以同时满足本地性和平均任务数约束时,则将该节点的主机信息设置为当前逻辑分片的唯一主机信息;
S2.3.4、剩余无法满足本地性约束的Map任务,则选择承担任务数最小节点的主机节点,将该节点的主机信息设置为当前逻辑分片的唯一主机信息;
S2.4、设置面向并行任务数量的同步方法,用于监测并行执行的Map任务数量达到要求时,启动Map任务,具体实现方法为:
S2.4.1、确定同步点的插入位置为RecordReader;
S2.4.2、采用主从式同步方法,选用Hadoop集群的主节点作为同步的主节点,在Hadoop集群的主节点上启动用于统计同步任务准备情况的服务进程,所述服务进程负责接收并检查当前测试阶段已就绪的负载Map任务信号,当已就绪的负载Map任务数与设定的并行任务数相等时,则返回Map任务的启动时刻,否则返回继续等待信号。
进一步的,步骤S3的具体实现方法包括如下步骤:
S3.1、读入Map任务分片数据;
S3.2、将Map任务分片数据在文件中的偏移量设置为键,将Map任务分片数据的内容设置为值;
S3.3、判断读取的Map任务分片数据是否存在新的记录,判断为是,则提取Map任务分片数据内容解析为测试命令,并执行所述测试命令,判断为否则结束Map任务;
S3.4、对步骤S3.3执行的测试命令进行判断,如果判断测试完成则终止此次测试,得到大规模负载模拟测试中间数据发送给Reduce任务待处理,如果判断测试未完成,则重复步骤S3.3。
进一步的,步骤S3中得到的大规模负载模拟测试中间数据经过Shuffle中间文件Shuffle转换后得到Reduce任务分片数据,输入到Reduce任务。
进一步的,步骤S4的具体实现方法包括如下步骤:
S4.1、读入Reduce任务的分片数据;
S4.2、将Reduce任务的分片数据中的测试结果的时间戳设置为Key,将Reduce任务的分片数据中的测试结果的内容设置为Value;
S4.3、判断读取的Map任务分片数据是否存在新记录,判断为存在新记录,则执行测试数据的分析脚本,并分发存储分析结果,判断为否则结束任务。
进一步的,步骤S4.1中为了实现每个Reduce任务的输入数据都是有时序的,建立全排序的数据分割方法TotalOrderPartitioner,具体实现方法为:
S4.1.1、对Reduce任务的输入数据进行采样,依据测试计划中负载强度的分布情况确定区间分组的边界,在Map阶段产生的中间测试数据,以时间戳为Key,依据确定的区间分组边界进行分组,得到采样结果;
S4.1.2、基于采样的结果,TotalOrderPartitioner生成分组文件,每个Map任务根据分组文件中的Key判断数据属于的分组,以此来完成整体数据的时序。
一种基于MapReduce的大规模负载测试的评价方法,依托于所述的一种基于MapReduce的大规模负载测试方法实现,包括如下步骤:
步骤a、大规模负载并行化模拟精度的评价;
步骤b、大规模负载并行化模拟效率的评价。
进一步的,步骤a的实现方法包括如下步骤:
步骤a1、完成一种基于MapReduce的大规模负载测试后,收集目标系统的日志;
步骤a2、引入动态时间规整距离作为负载精度的衡量指标,通过动态时间规整算法求解真实日志与模拟日志之间的距离,假设真实日志中提取的第i个时段的负载强度时间序列为li,则整体负载序列L的计算公式为:
L=[l1,l2,…,li,…,ln];
设置负载模拟的目标系统中提取的第j个时段的负载强度时间序列为rj,则整体负载序列R的计算公式为:
R=[r1,r2,…,rj,…,rm];
则DTW距离的计算公式为:
其中,w定义了L和R之间的映射路径,k表示时间序列的个数,最小路径反映了两条序列的相似性;
利用动态规划进行求解的计算公式为:
D(li,rj)=d(li,rj)+min{D(li-1,rj),D(li-1,rj-1),D(li,rj-1)}
其中,d表示序列之间的欧氏距离,D表示序列之间的DTW距离,当i=j=1时,D(l1,r1)=d(l1,r1)。
进一步的,步骤b的实现方法包括如下步骤:
步骤b1、通过计算加速比,以验证大规模负载并行化模拟效率,计算公式为:
其中,Ts表示串行任务执行的总时间,Tp(q)表示并行度为q的任务执行的总时间,Sp(q)为并行度为q的测试数据分析的加速比;
步骤b2、然后利用加速比求解并行效率,并行效率能够反映软件并行化后每个任务的执行效率,计算公式为:
其中,Ep(q)为并行度为q的并行效率。
本发明的有益效果:
本发明所述的一种基于MapReduce的大规模负载测试方法,是一种具有通用性的测试软件并行化方法,可以为其他有并行化需求的测试软件提供借鉴。该方法将负载测试任务分成两个阶段:分布式负载模拟阶段和测试数据回收分析阶段。该方法使用Map任务进行大规模负载模拟;使用Reduce任务进行测试数据的回收、分析与存储;使用分布式缓存来进行单机版测试软件的分发。本发明可部署在任何Hadoop集群。该方法采用Hadoop的MapReduce框架对负载测试软件实现并行化管理,可以实现测试工具的自动化部署、启动和关闭,具有良好的容错性。
本发明的主要贡献有以下三点:
(1)提出了面向分布式负载模拟的任务调度和任务同步策略,可实现更加精确的负载模拟,有利于真实负载场景的复现。
(2)提出了针对负载测试数据的分区算法,可有效降低测试数据在不同分析任务间的不均衡,并有效缩短分析时间。
(3)提出了基于动态时间规整的负载模拟精度的评价方法。并使用维基百科公开数据集,在分布式负载模拟环境下,验证了本发明的有效性。
附图说明
图1为本发明所述的一种基于MapReduce的大规模负载测试方法的流程图;
图2为本发明所述的一种基于MapReduce的大规模负载测试方法的Map任务的算法流程图;
图3为本发明所述的一种基于MapReduce的大规模负载测试方法的Reduce任务的算法流程图;
图4为本发明所述的一种基于MapReduce的大规模负载测试方法的逻辑分片信息优化算法流程图;
图5为本发明所述的一种基于MapReduce的大规模负载测试方法的Map任务同步点插入位置示意图;
图6为本发明所述的一种基于MapReduce的大规模负载测试的评价方法的真实负载日志与模拟负载日志的DTW距离对比图;
图7为本发明所述的一种基于MapReduce的大规模负载测试的评价方法的数据分析的加速比和并行效率图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施方式,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅用以解释本发明,并不用于限定本发明,即所描述的具体实施方式仅仅是本发明一部分实施方式,而不是全部的具体实施方式。通常在此处附图中描述和展示的本发明具体实施方式的组件可以以各种不同的配置来布置和设计,本发明还可以具有其他实施方式。
因此,以下对在附图中提供的本发明的具体实施方式的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定具体实施方式。基于本发明的具体实施方式,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他具体实施方式,都属于本发明保护的范围。
为能进一步了解本发明的发明内容、特点及功效,兹例举以下具体实施方式,并配合附图1-附图7详细说明如下:
具体实施方式一:
一种基于MapReduce的大规模负载测试方法,包括如下步骤:
S1、生成大规模负载测试任务文件;
进一步的,步骤S1中利用主控模块生成每个Map任务需要执行的负载测试命令,同时主控模块负责向Hadoop分布式文件系统按照并行任务数提交大规模负载测试任务文件;
S2、分布式缓存对大规模负载测试任务文件进行分发:Hadoop分布式文件系统对大规模负载测试任务文件进行大规模负载测试任务文件的并行化处理,然后插入同步检测点,得到Map任务分片数据;
在分布式负载测试过程中,不同的负载测试任务需要模拟不同强度的负载。因此,需要对负载模拟任务的并行度加以控制。本发明提出的分布式负载测试方法使用Map任务进行负载模拟,而Map任务的并行任务数量却无法直接指定。因此,本发明提供一种有效控制Map任务数量的机制,以完成负载模拟强度的精确控制。
在默认配置下提交MapReduce作业处理输入数据时,Hadoop框架会将数据切分成数据块,这些独立的数据块被称为逻辑分片。Hadoop平台启动的Map任务的数量默认情况下与输入文件的逻辑分片数量相一致,每个Map任务默认情况下会处理一个逻辑分片。因此,为了控制启动的负载模拟任务的数量,可以通过控制Map任务的输入逻辑分片的数量来间接实现。逻辑分片可以在MapReduce作业中进行设置,默认被设置为一个HDFS块的大小。由于Map任务的数量与逻辑分片的数量相同,因此改变逻辑分片的数量可以间接控制Map任务的数量。
进一步的,步骤S2的具体实现方法包括如下步骤:
S2.1、大规模负载测试任务文件的并行化处理的具体实现方法为通过改变逻辑分片的数量间接控制Map任务的数量;逻辑分片的数量由大规模负载测试任务文件大小和大规模负载测试任务文件数量共同决定,逻辑分片的计算表达式为:
InputSplitSize=max(SplitMinSize,min(SplitMaxSize,BlockSize))
其中,InputSplitSize为输入逻辑分片大小,SplitMinSize为输入逻辑分片的最小值,SplitMaxSize为输入逻辑分片的最大值,BlockSize为分布式文件系统的块大小;
当输入文件的大小未超过逻辑分片大小时,Hadoop会将该文件分割为独立的逻辑分片。只有当单个文件的大小超过逻辑分片时,该文件才会被分割成多个逻辑分片。为了计算逻辑分片的大小,需要首先比较SplitMaxSize和BlockSize的大小,并返回两个参数中较小的参数。然后,将返回值与SplitMinSize进行比较,返回较大的值。SplitMinSize和SplitMaxSize参数可以通过配置文件指定,而BlockSize则是分布式文件系统的数据块大小,默认值为64MB。
在Hadoop平台下,为了并行化的执行所有Map任务,需要关注集群中剩余的Map任务的资源槽数量。只有当剩余资源槽的数量大于Map任务的数量时,提交的Map任务才可以实现完全的并行执行。为了防止Map任务只有一部分启动执行,而另一部分任务等待执行,本发明设计了面向并行任务数量的同步策略。只有在并行执行的Map数量达到要求时,负载测试任务才会启动。
S2.2、设置大规模负载测试任务文件的控制规则,具体实现方法为:
S2.2.1、将每个负载测试任务执行的模拟参数放入独立的文件中,生成负载测试任务模拟参数文件;
S2.2.2、对比步骤S2.2.1生成的负载测试任务模拟参数文件的大小和逻辑分片的大小,如果负载测试任务模拟参数文件的大小超过逻辑分片的大小,则通过调整MapReduce作业的SplitMinSize,以此来确保每个负载测试任务模拟参数文件仅对应一个逻辑分片;
MapReduce的设计思想是“移动计算的代价要小于移动数据的代价”。因此,Map任务在调度过程中会充分考虑输入文件的本地性。在实际调度过程中,Hadoop的资源管理器不仅会考虑Map任务数据的本地性,还会考虑计算资源的利用率。因此,Hadoop的调度算法会尽可能将Map任务集中到更少的计算节点上,以减少Shuffle阶段跨越主机节点而消耗额外的数据传输带宽。在使用MapReduce框架进行负载模拟的过程中,每个Map任务负责根据分配到的测试指令向目标服务器发出大量的服务请求,这将消耗Hadoop集群与目标服务器之间的带宽资源。而Map任务输入文件由于仅存储了少量的测试指令,该文件是否具有本地性对整个作业的性能影响不大。因此,为了充分利用集群节点的带宽资源,应该尽量让负责执行负载模拟的Map任务在集群中的分布更加均匀。这样不仅能够充分使用整个集群的带宽资源,而且还能够有效减少负载发生器之间的串扰,实现更加精准的负载模拟。
MapReduce作业的输入文件需要上传到HDFS中。由于HDFS中的数据存在拷贝,同一份数据会在多个节点中复制保存。HDFS默认的拷贝数是3份,该拷贝数可以通过配置文件进行修改。默认情况下,Map任务为了考虑本地性,在申请资源时会向资源管理模块发送多个资源请求。这些资源请求中包含该任务的输入数据在HDFS节点中的存储位置。资源管理器则会参考Map任务发送的资源请求中的输入数据本地性进行决策,同时尽可能让Map任务在集群节点上集中执行。由于Hadoop集群被多个用户使用,如何在不修改默认资源管理算法的情况下,实现负载模拟的Map任务在节点中的分散执行,成为待解决的问题。
本发明提出一种基于逻辑分片信息的调度算法。该算法仅通过修改Map任务发送资源请求时包含的逻辑分片信息,即可实现更加均衡的任务分配。
S2.3、设置基于逻辑分片信息的调度规则,具体实现方法为:
S2.3.1、首先通过作业的上下文信息,获取Map任务的初始逻辑分片信息和逻辑分片所属的主机信息;
S2.3.2、计算获得每个节点需要平均分配的任务个数;
S2.3.3、对于每个逻辑分片首先考虑本地性,当某个逻辑分片中所属的某个主机节点可以同时满足本地性和平均任务数约束时,则将该节点的主机信息设置为当前逻辑分片的唯一主机信息;
S2.3.4、剩余无法满足本地性约束的Map任务,则选择承担任务数最小节点的主机节点,将该节点的主机信息设置为当前逻辑分片的唯一主机信息;
此时,通过修改不同Map任务对应逻辑分片所属的主机信息,即可在不修改Hadoop集群的资源管理策略的条件下,完成Map任务的分散调度。当资源管理算法根据逻辑分片更新后的主机信息进行调度时,可以显著提高Map任务在集群中的分散程度,也就最大化的使用了集群的带宽资源。
负载发生器需要线程组来模拟用户行为,对目标系统施加压力。为更加真实的模拟负载场景,需要在线程组之间加入同步策略。以JMeter的Ultimate Thread Group插件为例,该插件可对JMeter的线程组进行自定义设置。每条记录代表一个独立的测试,分别由以下参数组成:Start Threads Count、Initial Delay/sec、Startup Time/sec、Hold LoadFor/sec和Shutdown Time/sec。通过将多种不同的线程组进行组合,可以模拟复杂的负载场景。假如多个并行的负载模拟任务对目标系统发起某种波形的负载模拟时,目标系统承受叠加后的负载强度变化也应该是相似的波动。如果并行执行的负载模拟任务,在目标系统叠加后出现了负载波动的失真,无法保持原有波形,将严重降低分布式负载模拟的精度。
为了能够让并行执行的多个模拟任务对目标系统施加更高精度的负载压力,需要在模拟任务间插入同步点。同步点一般通过系统时钟来对齐负载模拟的起始时刻,但整个集群的系统时钟经常会不一致。为了同步策略的准确执行,在每次负载模拟任务开始前,需要通过命令同步整个集群节点的时钟。
为了使并行化负载模拟的方法具有可移植性,本发明提出一种基于重构RecordReader的同步策略。在MapReduce作业的执行过程中,Map任务需要通过RecordReader来读取输入文件。在本发明的并行化方法中,Map任务将通过RecordReader读取到负载模拟的参数。因此,可以在Map任务的读数据流中插入同步检查点;
S2.4、设置面向并行任务数量的同步方法,用于监测并行执行的Map任务数量达到要求时,启动Map任务,具体实现方法为:
S2.4.1、确定同步点的插入位置为RecordReader;
S2.4.2、采用主从式同步方法,选用Hadoop集群的主节点作为同步的主节点,在Hadoop集群的主节点上启动用于统计同步任务准备情况的服务进程,所述服务进程负责接收并检查当前测试阶段已就绪的负载Map任务信号,当已就绪的负载Map任务数与设定的并行任务数相等时,则返回Map任务的启动时刻,否则返回继续等待信号;
同步策略可以根据不同的负载场景自行设计。任何复杂场景的负载模拟,在分割成足够小的时间段后,负载强度都会比较稳定。而且在整个负载模拟过程中,又可以分为很多独立的阶段。此时,如果了解每个阶段负载模拟可能产生的最大时间差,则可以在每个阶段起始时通过固定启动时刻来完成不同任务的同步。为了提高同步精度,一般会将所有测试进程最后一个就绪的时刻,加上询问周期的时长,作为所有负载模拟任务的启动时刻。
S3、对步骤S2得到的Map任务分片数据输入到Map任务进行大规模负载模拟测试,得到大规模负载模拟测试中间数据;
进一步的,步骤S3的具体实现方法包括如下步骤:
S3.1、读入Map任务分片数据;
S3.2、将Map任务分片数据在文件中的偏移量设置为键,将Map任务分片数据的内容设置为值;
S3.3、判断读取的Map任务分片数据是否存在新的记录,判断为是,则提取Map任务分片数据内容解析为测试命令,并执行所述测试命令,判断为否则结束Map任务;
S3.4、对步骤S3.3执行的测试命令进行判断,如果判断测试完成则终止此次测试,得到大规模负载模拟测试中间数据发送给Reduce任务待处理,如果判断测试未完成,则重复步骤S3.3;
进一步的,步骤S3中得到的大规模负载模拟测试中间数据经过Shuffle中间文件Shuffle转换后得到Reduce任务分片数据,输入到Reduce任务;
S4、对步骤S3得到的大规模负载模拟测试中间数据输入到Reduce任务进行数据分析、数据回收,将Reduce输出结果存储到Hadoop分布式文件系统中。
Reduce任务负责收集所有Map测试任务产生的中间数据,并行按照分析需求处理测试数据。由于所有的测试数据分析任务均由Reduce函数完成,因此需要将测试数据统计分析的相关模块导入到Reduce任务中。为了让多个Reduce任务可以独立处理测试数据,需要针对负载测试数据的特征进行分组,以确保每个分组中的数据都可以被独立的处理。由于Reduce任务获得了所有的测试数据,Reduce任务不仅可以将测试数据的分析结果写入分布式文件系统,也可以按需选择将未被处理过的原始测试数据也写入到分布式文件系统,以便后续的分析或研究;
当MapReduce作业中存在多个Reduce任务时,Map任务产生的中间数据需要进行分组。由于不同Reduce任务负责处理不同的分组,分组策略将直接影响Reduce阶段的数据均衡。为了实现Reduce任务的负载均衡,MapReduce框架内置了多种常用分组策略。为了满足更多的可定制化的分组需求,MapReduce框架也支持自定义的分组策略。
在常见的负载测试数据的统计分析中,时间临近的测试数据应该被放在同一个任务中进行分析。负载模拟获得的测试数据是以时间戳为Key,以测试结果为Value,从Map任务向Reduce任务进行传递的。当负载强度随时间会不断变化时,不仅需要保证测试时间距离相近的数据被分配到同一个Reduce任务中,还需要保证分配给每个Reduce任务中的数据量相差不大。由于负载模拟收集的数据是有时序的,当从Map任务向Reduce任务推送中间数据时,会再次进行排序。此时,每个Reduce任务的输入数据都是有时序的;
进一步的,步骤S4的具体实现方法包括如下步骤:
S4.1、读入Reduce任务的分片数据;
进一步的,步骤S4.1中为了实现每个Reduce任务的输入数据都是有时序的,建立全排序的数据分割方法TotalOrderPartitioner,具体实现方法为:
S4.1.1、对Reduce任务的输入数据进行采样,依据测试计划中负载强度的分布情况确定区间分组的边界,在Map阶段产生的中间测试数据,以时间戳为Key,依据确定的区间分组边界进行分组,得到采样结果;
S4.1.2、基于采样的结果,TotalOrderPartitioner生成分组文件,每个Map任务根据分组文件中的Key判断数据属于的分组,以此来完成整体数据的时序;
S4.2、将Reduce任务的分片数据中的测试结果的时间戳设置为Key,将Reduce任务的分片数据中的测试结果的内容设置为Value;
S4.3、判断读取的Map任务分片数据是否存在新记录,判断为存在新记录,则执行测试数据的分析脚本,并分发存储分析结果,判断为否则结束任务。
具体实施方式二:
一种基于MapReduce的大规模负载测试的评价方法,依托于具体实施方式一所述的一种基于MapReduce的大规模负载测试方法实现,包括如下步骤:
步骤a、大规模负载并行化模拟精度的评价;
进一步的,步骤a的实现方法包括如下步骤:
步骤a1、完成一种基于MapReduce的大规模负载测试后,收集目标系统的日志;
步骤a2、引入动态时间规整距离作为负载精度的衡量指标,通过动态时间规整算法求解真实日志与模拟日志之间的距离,假设真实日志中提取的第i个时段的负载强度时间序列为li,则整体负载序列L的计算公式为:
L=[l1,l2,…,li,…,ln];
设置负载模拟的目标系统中提取的第j个时段的负载强度时间序列为rj,则整体负载序列R的计算公式为:
R=[r1,r2,…,rj,…,rm];
则DTW距离的计算公式为:
其中,w定义了L和R之间的映射路径,k表示时间序列的个数,最小路径反映了两条序列的相似性;
利用动态规划进行求解的计算公式为:
D(li,rj)=d(li,rj)+min{D(li-1,rj),D(li-1,rj-1),D(li,rj-1)}
其中,d表示序列之间的欧氏距离,D表示序列之间的DTW距离,当i=j=1时,
D(l1,r1)=d(l1,r1);
步骤b、大规模负载并行化模拟效率的评价。
进一步的,步骤b的实现方法包括如下步骤:
步骤b1、通过计算加速比,以验证大规模负载并行化模拟效率,计算公式为:
其中,Ts表示串行任务执行的总时间,Tp(q)表示并行度为q的任务执行的总时间,Sp(q)为并行度为q的测试数据分析的加速比;
步骤b2、然后利用加速比求解并行效率,并行效率能够反映软件并行化后每个任务的执行效率,计算公式为:
其中,Ep(q)为并行度为q的并行效率。
以下为本发明的实验验证过程,实验环境是由12台超云R6240-G9服务器搭建的OpenStack私有云平台提供,其中实验相关的主要软硬件配置如表1所示。本次实验中的Hadoop集群和目标系统均使用该私有云平台所提供的虚拟机进行搭建。
表1实验环境的软硬件配置
实验所使用的Hadoop集群由15个虚拟机组成,每个虚拟机是8核CPU和8GB内存。其中1个为Master节点,其他为Slave节点。负载测试的目标系统是TPC-W中的电子商务网站,该网站由Nginx负载均衡节点、Web服务节点、静态文件节点和MySQL数据库节点组成。其中负载均衡节点与数据库节点均为8核CPU和8GB内存虚拟机,剩余节点均为4核CPU和4GB内存虚拟机。其中在Web服务节点的管理部分引入弹性策略,使其可以依据负载的强度进行节点数量的增加或减少。
在负载模拟过程中,越是复杂的负载场景,越是难以精确模拟。分布式负载模拟相较于单机负载模拟,模拟精度会出现一定程度的下降。由于单机负载模拟存在计算资源不足的情况,在需要进行大规模负载模拟时仍需要借助并行化的方式。在面向资源管理策略的文献中,JMeter是使用最广泛的分布式负载模拟工具。为此,在量化评估本发明提出的并行化负载模拟精度时,选择JMeter的并行化负载模拟方法作为基准进行对比。
为了更加公平的评估本发明提出的负载模拟方法的准确性,本发明从维基百科网站的开源访问日志中,提取数据并压缩为复杂的负载模拟场景。本次实验使用了维基百科2008至2011年全年的访问数据。本次实验对数据跨度进行了压缩处理,处理后的模拟负载总时间从1年被压缩至1小时左右,同时保证模拟的最大负载强度不超过目标系统的最大处理能力。
本实验分别使用本发明提出的分布式负载模拟方法和JMeter的分布式负载模拟方法,模拟四种复杂的负载场景,对目标系统施加负载压力。负载模拟的并行任务数被设置为56个。测试结束后,从回收的测试数据中可以获得系统日志。将系统日志与维基百科的访问日志采用相同的处理方法,可以提取到该系统承受的模拟负载强度时间序列。将从维基百科获得的真实负载强度的时间序列,与测试日志获得的模拟负载强度的时间序列,通过上文所述的DTW距离计算时间序列之间的相似度,结果如图6所示,横坐标表示不同年份的维基百科负载场景,纵坐标表示采用不同分布式负载模拟方法的模拟负载强度时间序列与真实负载强度时间序列的DTW距离。采用DTW的距离作为评价标准时,数值越低,说明从被测系统获取的模拟负载强度的时间序列与真实负载强度的时间序列越接近,表示负载模拟的精度越高。本发明所提出的分布式负载模拟方法的精度在四种不同年份的负载中均明显优于JMeter的分布式负载模拟方法。且在不同的负载场景下,本发明方法的负载模拟精度具有较好的稳定性。相较于主流开源JMeter的分布式负载模拟方法,本发明的分布式负载模拟方法的精度最高可提升3.4倍。
计算获得本发明分布式方法下的数据分析的加速比与并行效率,结果如图7所示,横坐标表示并行执行的数据分析任务,左侧纵坐标表示本发明方法的加速比,右侧纵坐标表示本发明方法的并行效率。加速比随着并行任务数的增大而近似直线上升。加速效率虽有下降,但下降较为缓慢。这表示本发明提出的分布式测试方法可以显著提高测试数据的分析速度,且具有良好的可扩展性。
需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
虽然在上文中已经参考具体实施方式对本申请进行了描述,然而在不脱离本申请的范围的情况下,可以对其进行各种改进并且可以用等效物替换其中的部件。尤其是,只要不存在结构冲突,本申请所披露的具体实施方式中的各项特征均可通过任意方式相互结合起来使用,在本说明书中未对这些组合的情况进行穷举性的描述仅仅是出于省略篇幅和节约资源的考虑。因此,本申请并不局限于文中公开的特定具体实施方式,而是包括落入权利要求的范围内的所有技术方案。

Claims (8)

1.一种基于MapReduce的大规模负载测试方法,其特征在于,包括如下步骤:
S1、生成大规模负载测试任务文件;
S2、分布式缓存对大规模负载测试任务文件进行分发:Hadoop分布式文件系统对大规模负载测试任务文件进行负载测试任务文件的预处理,然后插入同步检测点,得到Map任务分片数据;
S3、对步骤S2得到的Map任务分片数据输入到Map任务进行大规模负载模拟测试,得到大规模负载模拟测试中间数据;
S4、对步骤S3得到的大规模负载模拟测试中间数据输入到Reduce任务进行数据分析和数据回收,将Reduce输出结果存储到Hadoop分布式文件系统中;
步骤S1中利用主控模块生成每个Map任务需要执行的负载测试命令,同时主控模块负责向Hadoop分布式文件系统按照并行任务数提交大规模负载测试任务文件;
步骤S2的具体实现方法包括如下步骤:
S2.1、大规模负载测试任务文件的并行化处理的具体实现方法为通过改变逻辑分片的数量间接控制Map任务的数量;逻辑分片的数量由大规模负载测试任务文件大小和大规模负载测试任务文件数量共同决定,逻辑分片的计算表达式为:
InputSplitSize=max(SplitMinSize,min(SplitMaxSize,BlockSize))
其中,InputSplitSize为输入逻辑分片大小,SplitMinSize为输入逻辑分片的最小值,SplitMaxSize为输入逻辑分片的最大值,BlockSize为分布式文件系统的块大小;
S2.2、设置大规模负载测试任务文件的控制规则,具体实现方法为:
S2.2.1、将每个负载测试任务执行的模拟参数放入独立的文件中,生成负载测试任务模拟参数文件;
S2.2.2、对比步骤S2.2.1生成的负载测试任务模拟参数文件的大小和逻辑分片的大小,如果负载测试任务模拟参数文件的大小超过逻辑分片的大小,则通过调整MapReduce作业的SplitMinSize,以此来确保每个负载测试任务模拟参数文件仅对应一个逻辑分片;
S2.3、设置基于逻辑分片信息的调度规则,具体实现方法为:
S2.3.1、首先通过作业的上下文信息,获取Map任务的初始逻辑分片信息和逻辑分片所属的主机信息;
S2.3.2、计算获得每个节点需要平均分配的任务个数;
S2.3.3、对于每个逻辑分片首先考虑本地性,当某个逻辑分片中所属的某个主机节点可以同时满足本地性和平均任务数约束时,则将该节点的主机信息设置为当前逻辑分片的唯一主机信息;
S2.3.4、剩余无法满足本地性约束的Map任务,则选择承担任务数最小节点的主机节点,将该节点的主机信息设置为当前逻辑分片的唯一主机信息;
S2.4、设置面向并行任务数量的同步方法,用于监测并行执行的Map任务数量达到要求时,启动Map任务,具体实现方法为:
S2.4.1、确定同步点的插入位置为RecordReader;
S2.4.2、采用主从式同步方法,选用Hadoop集群的主节点作为同步的主节点,在Hadoop集群的主节点上启动用于统计同步任务准备情况的服务进程,所述服务进程负责接收并检查当前测试阶段已就绪的负载Map任务信号,当已就绪的负载Map任务数与设定的并行任务数相等时,则返回Map任务的启动时刻,否则返回继续等待信号。
2.根据权利要求1所述的一种基于MapReduce的大规模负载测试方法,其特征在于,步骤S3的具体实现方法包括如下步骤:
S3.1、读入Map任务分片数据;
S3.2、将Map任务分片数据在文件中的偏移量设置为键,将Map任务分片数据的内容设置为值;
S3.3、判断读取的Map任务分片数据是否存在新的记录,判断为是,则提取Map任务分片数据内容解析为测试命令,并执行所述测试命令,判断为否则结束Map任务;
S3.4、对步骤S3.3执行的测试命令进行判断,如果判断测试完成则终止此次测试,得到大规模负载模拟测试中间数据发送给Reduce任务待处理,如果判断测试未完成,则重复步骤S3.3。
3.根据权利要求2所述的一种基于MapReduce的大规模负载测试方法,其特征在于,步骤S3中得到的大规模负载模拟测试中间数据经过Shuffle中间文件Shuffle转换后得到Reduce任务分片数据,输入到Reduce任务。
4.根据权利要求3所述的一种基于MapReduce的大规模负载测试方法,其特征在于,步骤S4的具体实现方法包括如下步骤:
S4.1、读入Reduce任务的分片数据;
S4.2、将Reduce任务的分片数据中的测试结果的时间戳设置为Key,将Reduce任务的分片数据中的测试结果的内容设置为Value;
S4.3、判断读取的Map任务分片数据是否存在新记录,判断为存在新记录,则执行测试数据的分析脚本,并分发存储分析结果,判断为否则结束任务。
5.根据权利要求4所述的一种基于MapReduce的大规模负载测试方法,其特征在于,步骤S4.1中为了实现每个Reduce任务的输入数据都是有时序的,建立全排序的数据分割方法TotalOrderPartitioner,具体实现方法为:
S4.1.1、对Reduce任务的输入数据进行采样,依据测试计划中负载强度的分布情况确定区间分组的边界,在Map阶段产生的中间测试数据,以时间戳为Key,依据确定的区间分组边界进行分组,得到采样结果;
S4.1.2、基于采样的结果,TotalOrderPartitioner生成分组文件,每个Map任务根据分组文件中的Key判断数据属于的分组,以此来完成整体数据的时序。
6.一种基于MapReduce的大规模负载测试的评价方法,依托于权利要求1-5之一所述的一种基于MapReduce的大规模负载测试方法实现,其特征在于,包括如下步骤:
步骤a、大规模负载并行化模拟精度的评价;
步骤b、大规模负载并行化模拟效率的评价。
7.根据权利要求6所述的一种基于MapReduce的大规模负载测试的评价方法,其特征在于,步骤a的实现方法包括如下步骤:
步骤a1、完成一种基于MapReduce的大规模负载测试后,收集目标系统的日志;
步骤a2、引入动态时间规整距离作为负载精度的衡量指标,通过动态时间规整算法求解真实日志与模拟日志之间的距离,假设真实日志中提取的第i个时段的负载强度时间序列为li,则整体负载序列L的计算公式为:
L=[l1,l2,...,li,...,ln];
设置负载模拟的目标系统中提取的第j个时段的负载强度时间序列为rj,则整体负载序列R的计算公式为:
R=[r1,r2,...,rj,...,rm];
则DTW距离的计算公式为:
其中,w定义了L和R之间的映射路径,K表示时间序列的个数,最小路径反映了两条序列的相似性;
利用动态规划进行求解的计算公式为:
D(li,rj)=d(li,rj)+min{D(li-1,rj),D(li-1,rj-1),D(li,rj-1)}
其中,d表示序列之间的欧氏距离,D表示序列之间的DTW距离,当i=j=1时,D(l1,r1)=d(l1,r1)。
8.根据权利要求7所述的一种基于MapReduce的大规模负载测试的评价方法,其特征在于,步骤b的实现方法包括如下步骤:
步骤b1、通过计算加速比,以验证大规模负载并行化模拟效率,计算公式为:
其中,Ts表示串行任务执行的总时间,Tp(q)表示并行度为q的任务执行的总时间,Sp(q)为并行度为q的测试数据分析的加速比;
步骤b2、然后利用加速比求解并行效率,并行效率能够反映软件并行化后每个任务的执行效率,计算公式为:
其中,Ep(q)为并行度为q的并行效率。
CN202310830308.8A 2023-07-07 2023-07-07 一种基于MapReduce的大规模负载测试方法及其评价方法 Active CN116795552B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310830308.8A CN116795552B (zh) 2023-07-07 2023-07-07 一种基于MapReduce的大规模负载测试方法及其评价方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310830308.8A CN116795552B (zh) 2023-07-07 2023-07-07 一种基于MapReduce的大规模负载测试方法及其评价方法

Publications (2)

Publication Number Publication Date
CN116795552A CN116795552A (zh) 2023-09-22
CN116795552B true CN116795552B (zh) 2024-06-14

Family

ID=88036522

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310830308.8A Active CN116795552B (zh) 2023-07-07 2023-07-07 一种基于MapReduce的大规模负载测试方法及其评价方法

Country Status (1)

Country Link
CN (1) CN116795552B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117520461B (zh) * 2024-01-05 2024-04-02 北京海致星图科技有限公司 逻辑分片的分发方法、装置、设备和介质
CN117992241B (zh) * 2024-04-03 2024-06-04 深圳市元睿城市智能发展有限公司 基于大数据的科技型中小企业银企对接服务系统及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104331477A (zh) * 2014-11-04 2015-02-04 哈尔滨工业大学 基于联邦式检索的云平台并发性能测试方法
CN109213665A (zh) * 2018-09-07 2019-01-15 北京航空航天大学 一种分布式并发加速测试技术与平台的构建方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111966656B (zh) * 2020-07-17 2022-11-11 苏州浪潮智能科技有限公司 存储文件高负载场景模拟方法、系统、终端及存储介质
CN112559129B (zh) * 2020-12-16 2023-03-10 西安电子科技大学 虚拟化平台负载均衡功能和性能的测试装置及方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104331477A (zh) * 2014-11-04 2015-02-04 哈尔滨工业大学 基于联邦式检索的云平台并发性能测试方法
CN109213665A (zh) * 2018-09-07 2019-01-15 北京航空航天大学 一种分布式并发加速测试技术与平台的构建方法

Also Published As

Publication number Publication date
CN116795552A (zh) 2023-09-22

Similar Documents

Publication Publication Date Title
CN116795552B (zh) 一种基于MapReduce的大规模负载测试方法及其评价方法
US11281644B2 (en) Blockchain logging of data from multiple systems
Wang et al. Performance prediction for apache spark platform
CN110309071B (zh) 测试代码的生成方法及模块、测试方法及系统
Mahgoub et al. {OPTIMUSCLOUD}: Heterogeneous configuration optimization for distributed databases in the cloud
Wang et al. Using realistic simulation for performance analysis of mapreduce setups
Anjos et al. MRA++: Scheduling and data placement on MapReduce for heterogeneous environments
US20140359624A1 (en) Determining a completion time of a job in a distributed network environment
US9229838B2 (en) Modeling and evaluating application performance in a new environment
Baker et al. A new ensemble-based consistency test for the Community Earth System Model (pyCECT v1. 0)
US9740595B2 (en) Method and apparatus for producing a benchmark application for performance testing
CN109165153A (zh) 一种高仿真证券业交易类系统的性能测试方法
Nagdive et al. Overview on performance testing approach in big data
CN110377519B (zh) 大数据系统的性能容量测试方法、装置、设备及存储介质
Rosas et al. Improving performance on data-intensive applications using a load balancing methodology based on divisible load theory
CN106959872A (zh) 应用上线方法和装置
CN111341391B (zh) 一种用于异构集群环境中的自由能微扰计算调度方法
Chen et al. A methodology for understanding mapreduce performance under diverse workloads
Wasi-ur-Rahman et al. Performance modeling for RDMA-enhanced hadoop MapReduce
US8589360B2 (en) Verifying consistency levels
Ouyang et al. Mitigate data skew caused stragglers through ImKP partition in MapReduce
CN113886263A (zh) 系统测试方法、装置、设备及存储介质
Yin et al. Performance modeling and optimization of MapReduce programs
Papakyriakou Benchmarking Raspberry Pi 2 Hadoop Cluster
Haggarty et al. Distributed response time analysis of GSPN models with MapReduce

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