基于Spark负载均衡的分布式压力测试系统的设计与实现
发布时间:2021-11-15 17:37
随着现代互联网技术的发展,软件集成度和用户规模不断扩大,软件及电子商务网站如视频门户、12306等需要承受大量用户的并发访问,压力测试成为其上线前不可或缺的关键步骤。面对日益增长的压力测试需求,常用的压力测试框架在性能上已无法有效的支持业界内多样化的需求。本文分析并发现了现有常用的压力测试软件中的问题缺陷,如:配置困难、低实时性、负载不均衡和不支持多种服务等。针对这些问题,本文提出改进后系统的设计目标,并以此开发了基于Spark负载均衡的分布式压力测试软件系统。该系统主要由控制管理、压测引擎、Yarn负载调节、服务插件等组成;并提供了统一的控制管理功能,能够降低用户操作配置并对测试结果实时的图像化展示。通过采用Spark Streaming流式计算设计实现的分布式压测引擎,可以快速的产生分布式的高并发压力,提高了多线程并发效率;并通过流式计算处理测试结果信息,为系统的实时性提供了底层计算支持。并通过改进基于Yarn平台的资源调度算法,实现了不同节点压测引擎的负载均衡,提高了系统的整体性能。还设计了服务插件化,能快速添加新的压测服务到测试系统中,旨在扩展更多不同类型的服务支持。最后,将本...
【文章来源】:华中科技大学湖北省 211工程院校 985工程院校 教育部直属院校
【文章页数】:67 页
【学位级别】:硕士
【部分图文】:
LoadRunner应用体系架构图
华 中 科 技 大 学 硕 士 学 位 论 文综上,可以得出 LoadRunner 方案的主要指标:提供系统控制管理台,监控指标相对齐全,能够提供压测结果显示、在线查看、测试结果细致等。但 LoadRunner 主要的缺点是:商用软件、价格昂贵,并且 LoadRunner 需要用户自己编写运行脚本,一定程度上增大了使用人员的负担和压测系统的不确定性,也一定程度上导致了无法大规模的推广和使用。并且 LoadRunner 在服务支持上,也无法支持多种不同的基础服务协议,如 zookeeper、kudu 等,并且 LoadRunner 也无法实现系统资源负载的均衡分配和有效隔离。JMeter 方案:JMeter 的体系结构如图 2.4 所示。从结构体系图中我们可以看出 JMeter 主要可以分为取样器、定时器、配置元件、监听器[20]。
尽最大程度上的模拟并发用户的访问。在模拟产生用户访问压力是通过多线程或进程的方式来进行实施。在现有的压测方案和实现中,对的创建没有数量上的限制,也就是说每一个创建的线程代表实现单个用户问请求,为了能够达到最大规模的并发访问请求,需要当前节点计算机产多个线程。由于多线程的创建、销毁、协调、上下文切换、以及多线程的题,都会对节点计算机造成额外的性能开销。如果多线程创建运行被过度这些额外的性能开销也会影响当前节点计算机的运行性能,使其 CPU 处于态,无法响应和接受新的任务。并且在压力引擎产生压力的同时,也需要请求到的数据进行并行处理计算,这就对压力引擎的实时性提出了更高的要求。所以合理的改进并优化多线程的并发控制具有重要的意义。基于对分布式多线程的并发控制和数据实时性计算处理的需求改进,压力组件采用基于 Spark Streaming 的实时流计算来改进设计[28]。其 Spark Strea架构如图 3.6 所示。
【参考文献】:
期刊论文
[1]LoadRunner在软件性能测试中的应用与研究[J]. 郭旭敏,王小厅. 太原学院学报(自然科学版). 2018(03)
[2]Spark Streaming在实时计算中的应用研究[J]. 谢艳晴. 电脑知识与技术. 2018(25)
[3]基于Java的设计模式理解与实现[J]. 郑苗. 电脑知识与技术. 2017(32)
[4]大数据处理统一引擎Apache Spark研究[J]. 张琴. 现代制造技术与装备. 2017(08)
[5]分布式系统性能测试[J]. 孔留彦. 信息与电脑(理论版). 2017(11)
[6]使用SSH服务与远程工具[J]. 顾武雄. 网络安全和信息化. 2017(02)
[7]基于JMeter的Web性能测试的研究[J]. 陈阿妹,陈佳丽,陈斌仙. 九江学院学报(自然科学版). 2016(01)
[8]软件开发的性能测试与研究[J]. 许国梁. 电子技术与软件工程. 2015(18)
[9]大数据Spark技术研究[J]. 刘峰波. 数字技术与应用. 2015(09)
[10]Hadoop YARN大数据计算框架及其资源调度机制研究[J]. 董春涛,李文婷,沈晴霓,吴中海. 信息通信技术. 2015(01)
硕士论文
[1]面向Web软件的分布式压力测试工具的设计与实现[D]. 钟珀辰.国防科学技术大学 2013
[2]关于数据仓库元数据管理系统的研究与建立[D]. 陈进.中国海洋大学 2011
本文编号:3497220
【文章来源】:华中科技大学湖北省 211工程院校 985工程院校 教育部直属院校
【文章页数】:67 页
【学位级别】:硕士
【部分图文】:
LoadRunner应用体系架构图
华 中 科 技 大 学 硕 士 学 位 论 文综上,可以得出 LoadRunner 方案的主要指标:提供系统控制管理台,监控指标相对齐全,能够提供压测结果显示、在线查看、测试结果细致等。但 LoadRunner 主要的缺点是:商用软件、价格昂贵,并且 LoadRunner 需要用户自己编写运行脚本,一定程度上增大了使用人员的负担和压测系统的不确定性,也一定程度上导致了无法大规模的推广和使用。并且 LoadRunner 在服务支持上,也无法支持多种不同的基础服务协议,如 zookeeper、kudu 等,并且 LoadRunner 也无法实现系统资源负载的均衡分配和有效隔离。JMeter 方案:JMeter 的体系结构如图 2.4 所示。从结构体系图中我们可以看出 JMeter 主要可以分为取样器、定时器、配置元件、监听器[20]。
尽最大程度上的模拟并发用户的访问。在模拟产生用户访问压力是通过多线程或进程的方式来进行实施。在现有的压测方案和实现中,对的创建没有数量上的限制,也就是说每一个创建的线程代表实现单个用户问请求,为了能够达到最大规模的并发访问请求,需要当前节点计算机产多个线程。由于多线程的创建、销毁、协调、上下文切换、以及多线程的题,都会对节点计算机造成额外的性能开销。如果多线程创建运行被过度这些额外的性能开销也会影响当前节点计算机的运行性能,使其 CPU 处于态,无法响应和接受新的任务。并且在压力引擎产生压力的同时,也需要请求到的数据进行并行处理计算,这就对压力引擎的实时性提出了更高的要求。所以合理的改进并优化多线程的并发控制具有重要的意义。基于对分布式多线程的并发控制和数据实时性计算处理的需求改进,压力组件采用基于 Spark Streaming 的实时流计算来改进设计[28]。其 Spark Strea架构如图 3.6 所示。
【参考文献】:
期刊论文
[1]LoadRunner在软件性能测试中的应用与研究[J]. 郭旭敏,王小厅. 太原学院学报(自然科学版). 2018(03)
[2]Spark Streaming在实时计算中的应用研究[J]. 谢艳晴. 电脑知识与技术. 2018(25)
[3]基于Java的设计模式理解与实现[J]. 郑苗. 电脑知识与技术. 2017(32)
[4]大数据处理统一引擎Apache Spark研究[J]. 张琴. 现代制造技术与装备. 2017(08)
[5]分布式系统性能测试[J]. 孔留彦. 信息与电脑(理论版). 2017(11)
[6]使用SSH服务与远程工具[J]. 顾武雄. 网络安全和信息化. 2017(02)
[7]基于JMeter的Web性能测试的研究[J]. 陈阿妹,陈佳丽,陈斌仙. 九江学院学报(自然科学版). 2016(01)
[8]软件开发的性能测试与研究[J]. 许国梁. 电子技术与软件工程. 2015(18)
[9]大数据Spark技术研究[J]. 刘峰波. 数字技术与应用. 2015(09)
[10]Hadoop YARN大数据计算框架及其资源调度机制研究[J]. 董春涛,李文婷,沈晴霓,吴中海. 信息通信技术. 2015(01)
硕士论文
[1]面向Web软件的分布式压力测试工具的设计与实现[D]. 钟珀辰.国防科学技术大学 2013
[2]关于数据仓库元数据管理系统的研究与建立[D]. 陈进.中国海洋大学 2011
本文编号:3497220
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/3497220.html