基于Spark負(fù)載均衡的分布式壓力測試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
發(fā)布時(shí)間:2021-11-15 17:37
隨著現(xiàn)代互聯(lián)網(wǎng)技術(shù)的發(fā)展,軟件集成度和用戶規(guī)模不斷擴(kuò)大,軟件及電子商務(wù)網(wǎng)站如視頻門戶、12306等需要承受大量用戶的并發(fā)訪問,壓力測試成為其上線前不可或缺的關(guān)鍵步驟。面對日益增長的壓力測試需求,常用的壓力測試框架在性能上已無法有效的支持業(yè)界內(nèi)多樣化的需求。本文分析并發(fā)現(xiàn)了現(xiàn)有常用的壓力測試軟件中的問題缺陷,如:配置困難、低實(shí)時(shí)性、負(fù)載不均衡和不支持多種服務(wù)等。針對這些問題,本文提出改進(jìn)后系統(tǒng)的設(shè)計(jì)目標(biāo),并以此開發(fā)了基于Spark負(fù)載均衡的分布式壓力測試軟件系統(tǒng)。該系統(tǒng)主要由控制管理、壓測引擎、Yarn負(fù)載調(diào)節(jié)、服務(wù)插件等組成;并提供了統(tǒng)一的控制管理功能,能夠降低用戶操作配置并對測試結(jié)果實(shí)時(shí)的圖像化展示。通過采用Spark Streaming流式計(jì)算設(shè)計(jì)實(shí)現(xiàn)的分布式壓測引擎,可以快速的產(chǎn)生分布式的高并發(fā)壓力,提高了多線程并發(fā)效率;并通過流式計(jì)算處理測試結(jié)果信息,為系統(tǒng)的實(shí)時(shí)性提供了底層計(jì)算支持。并通過改進(jìn)基于Yarn平臺(tái)的資源調(diào)度算法,實(shí)現(xiàn)了不同節(jié)點(diǎn)壓測引擎的負(fù)載均衡,提高了系統(tǒng)的整體性能。還設(shè)計(jì)了服務(wù)插件化,能快速添加新的壓測服務(wù)到測試系統(tǒng)中,旨在擴(kuò)展更多不同類型的服務(wù)支持。最后,將本...
【文章來源】:華中科技大學(xué)湖北省 211工程院校 985工程院校 教育部直屬院校
【文章頁數(shù)】:67 頁
【學(xué)位級別】:碩士
【部分圖文】:
LoadRunner應(yīng)用體系架構(gòu)圖
華 中 科 技 大 學(xué) 碩 士 學(xué) 位 論 文綜上,可以得出 LoadRunner 方案的主要指標(biāo):提供系統(tǒng)控制管理臺(tái),監(jiān)控指標(biāo)相對齊全,能夠提供壓測結(jié)果顯示、在線查看、測試結(jié)果細(xì)致等。但 LoadRunner 主要的缺點(diǎn)是:商用軟件、價(jià)格昂貴,并且 LoadRunner 需要用戶自己編寫運(yùn)行腳本,一定程度上增大了使用人員的負(fù)擔(dān)和壓測系統(tǒng)的不確定性,也一定程度上導(dǎo)致了無法大規(guī)模的推廣和使用。并且 LoadRunner 在服務(wù)支持上,也無法支持多種不同的基礎(chǔ)服務(wù)協(xié)議,如 zookeeper、kudu 等,并且 LoadRunner 也無法實(shí)現(xiàn)系統(tǒng)資源負(fù)載的均衡分配和有效隔離。JMeter 方案:JMeter 的體系結(jié)構(gòu)如圖 2.4 所示。從結(jié)構(gòu)體系圖中我們可以看出 JMeter 主要可以分為取樣器、定時(shí)器、配置元件、監(jiān)聽器[20]。
盡最大程度上的模擬并發(fā)用戶的訪問。在模擬產(chǎn)生用戶訪問壓力是通過多線程或進(jìn)程的方式來進(jìn)行實(shí)施。在現(xiàn)有的壓測方案和實(shí)現(xiàn)中,對的創(chuàng)建沒有數(shù)量上的限制,也就是說每一個(gè)創(chuàng)建的線程代表實(shí)現(xiàn)單個(gè)用戶問請求,為了能夠達(dá)到最大規(guī)模的并發(fā)訪問請求,需要當(dāng)前節(jié)點(diǎn)計(jì)算機(jī)產(chǎn)多個(gè)線程。由于多線程的創(chuàng)建、銷毀、協(xié)調(diào)、上下文切換、以及多線程的題,都會(huì)對節(jié)點(diǎn)計(jì)算機(jī)造成額外的性能開銷。如果多線程創(chuàng)建運(yùn)行被過度這些額外的性能開銷也會(huì)影響當(dāng)前節(jié)點(diǎn)計(jì)算機(jī)的運(yùn)行性能,使其 CPU 處于態(tài),無法響應(yīng)和接受新的任務(wù)。并且在壓力引擎產(chǎn)生壓力的同時(shí),也需要請求到的數(shù)據(jù)進(jìn)行并行處理計(jì)算,這就對壓力引擎的實(shí)時(shí)性提出了更高的要求。所以合理的改進(jìn)并優(yōu)化多線程的并發(fā)控制具有重要的意義。基于對分布式多線程的并發(fā)控制和數(shù)據(jù)實(shí)時(shí)性計(jì)算處理的需求改進(jìn),壓力組件采用基于 Spark Streaming 的實(shí)時(shí)流計(jì)算來改進(jìn)設(shè)計(jì)[28]。其 Spark Strea架構(gòu)如圖 3.6 所示。
【參考文獻(xiàn)】:
期刊論文
[1]LoadRunner在軟件性能測試中的應(yīng)用與研究[J]. 郭旭敏,王小廳. 太原學(xué)院學(xué)報(bào)(自然科學(xué)版). 2018(03)
[2]Spark Streaming在實(shí)時(shí)計(jì)算中的應(yīng)用研究[J]. 謝艷晴. 電腦知識與技術(shù). 2018(25)
[3]基于Java的設(shè)計(jì)模式理解與實(shí)現(xiàn)[J]. 鄭苗. 電腦知識與技術(shù). 2017(32)
[4]大數(shù)據(jù)處理統(tǒng)一引擎Apache Spark研究[J]. 張琴. 現(xiàn)代制造技術(shù)與裝備. 2017(08)
[5]分布式系統(tǒng)性能測試[J]. 孔留彥. 信息與電腦(理論版). 2017(11)
[6]使用SSH服務(wù)與遠(yuǎn)程工具[J]. 顧武雄. 網(wǎng)絡(luò)安全和信息化. 2017(02)
[7]基于JMeter的Web性能測試的研究[J]. 陳阿妹,陳佳麗,陳斌仙. 九江學(xué)院學(xué)報(bào)(自然科學(xué)版). 2016(01)
[8]軟件開發(fā)的性能測試與研究[J]. 許國梁. 電子技術(shù)與軟件工程. 2015(18)
[9]大數(shù)據(jù)Spark技術(shù)研究[J]. 劉峰波. 數(shù)字技術(shù)與應(yīng)用. 2015(09)
[10]Hadoop YARN大數(shù)據(jù)計(jì)算框架及其資源調(diào)度機(jī)制研究[J]. 董春濤,李文婷,沈晴霓,吳中海. 信息通信技術(shù). 2015(01)
碩士論文
[1]面向Web軟件的分布式壓力測試工具的設(shè)計(jì)與實(shí)現(xiàn)[D]. 鐘珀辰.國防科學(xué)技術(shù)大學(xué) 2013
[2]關(guān)于數(shù)據(jù)倉庫元數(shù)據(jù)管理系統(tǒng)的研究與建立[D]. 陳進(jìn).中國海洋大學(xué) 2011
本文編號:3497220
【文章來源】:華中科技大學(xué)湖北省 211工程院校 985工程院校 教育部直屬院校
【文章頁數(shù)】:67 頁
【學(xué)位級別】:碩士
【部分圖文】:
LoadRunner應(yīng)用體系架構(gòu)圖
華 中 科 技 大 學(xué) 碩 士 學(xué) 位 論 文綜上,可以得出 LoadRunner 方案的主要指標(biāo):提供系統(tǒng)控制管理臺(tái),監(jiān)控指標(biāo)相對齊全,能夠提供壓測結(jié)果顯示、在線查看、測試結(jié)果細(xì)致等。但 LoadRunner 主要的缺點(diǎn)是:商用軟件、價(jià)格昂貴,并且 LoadRunner 需要用戶自己編寫運(yùn)行腳本,一定程度上增大了使用人員的負(fù)擔(dān)和壓測系統(tǒng)的不確定性,也一定程度上導(dǎo)致了無法大規(guī)模的推廣和使用。并且 LoadRunner 在服務(wù)支持上,也無法支持多種不同的基礎(chǔ)服務(wù)協(xié)議,如 zookeeper、kudu 等,并且 LoadRunner 也無法實(shí)現(xiàn)系統(tǒng)資源負(fù)載的均衡分配和有效隔離。JMeter 方案:JMeter 的體系結(jié)構(gòu)如圖 2.4 所示。從結(jié)構(gòu)體系圖中我們可以看出 JMeter 主要可以分為取樣器、定時(shí)器、配置元件、監(jiān)聽器[20]。
盡最大程度上的模擬并發(fā)用戶的訪問。在模擬產(chǎn)生用戶訪問壓力是通過多線程或進(jìn)程的方式來進(jìn)行實(shí)施。在現(xiàn)有的壓測方案和實(shí)現(xiàn)中,對的創(chuàng)建沒有數(shù)量上的限制,也就是說每一個(gè)創(chuàng)建的線程代表實(shí)現(xiàn)單個(gè)用戶問請求,為了能夠達(dá)到最大規(guī)模的并發(fā)訪問請求,需要當(dāng)前節(jié)點(diǎn)計(jì)算機(jī)產(chǎn)多個(gè)線程。由于多線程的創(chuàng)建、銷毀、協(xié)調(diào)、上下文切換、以及多線程的題,都會(huì)對節(jié)點(diǎn)計(jì)算機(jī)造成額外的性能開銷。如果多線程創(chuàng)建運(yùn)行被過度這些額外的性能開銷也會(huì)影響當(dāng)前節(jié)點(diǎn)計(jì)算機(jī)的運(yùn)行性能,使其 CPU 處于態(tài),無法響應(yīng)和接受新的任務(wù)。并且在壓力引擎產(chǎn)生壓力的同時(shí),也需要請求到的數(shù)據(jù)進(jìn)行并行處理計(jì)算,這就對壓力引擎的實(shí)時(shí)性提出了更高的要求。所以合理的改進(jìn)并優(yōu)化多線程的并發(fā)控制具有重要的意義。基于對分布式多線程的并發(fā)控制和數(shù)據(jù)實(shí)時(shí)性計(jì)算處理的需求改進(jìn),壓力組件采用基于 Spark Streaming 的實(shí)時(shí)流計(jì)算來改進(jìn)設(shè)計(jì)[28]。其 Spark Strea架構(gòu)如圖 3.6 所示。
【參考文獻(xiàn)】:
期刊論文
[1]LoadRunner在軟件性能測試中的應(yīng)用與研究[J]. 郭旭敏,王小廳. 太原學(xué)院學(xué)報(bào)(自然科學(xué)版). 2018(03)
[2]Spark Streaming在實(shí)時(shí)計(jì)算中的應(yīng)用研究[J]. 謝艷晴. 電腦知識與技術(shù). 2018(25)
[3]基于Java的設(shè)計(jì)模式理解與實(shí)現(xiàn)[J]. 鄭苗. 電腦知識與技術(shù). 2017(32)
[4]大數(shù)據(jù)處理統(tǒng)一引擎Apache Spark研究[J]. 張琴. 現(xiàn)代制造技術(shù)與裝備. 2017(08)
[5]分布式系統(tǒng)性能測試[J]. 孔留彥. 信息與電腦(理論版). 2017(11)
[6]使用SSH服務(wù)與遠(yuǎn)程工具[J]. 顧武雄. 網(wǎng)絡(luò)安全和信息化. 2017(02)
[7]基于JMeter的Web性能測試的研究[J]. 陳阿妹,陳佳麗,陳斌仙. 九江學(xué)院學(xué)報(bào)(自然科學(xué)版). 2016(01)
[8]軟件開發(fā)的性能測試與研究[J]. 許國梁. 電子技術(shù)與軟件工程. 2015(18)
[9]大數(shù)據(jù)Spark技術(shù)研究[J]. 劉峰波. 數(shù)字技術(shù)與應(yīng)用. 2015(09)
[10]Hadoop YARN大數(shù)據(jù)計(jì)算框架及其資源調(diào)度機(jī)制研究[J]. 董春濤,李文婷,沈晴霓,吳中海. 信息通信技術(shù). 2015(01)
碩士論文
[1]面向Web軟件的分布式壓力測試工具的設(shè)計(jì)與實(shí)現(xiàn)[D]. 鐘珀辰.國防科學(xué)技術(shù)大學(xué) 2013
[2]關(guān)于數(shù)據(jù)倉庫元數(shù)據(jù)管理系統(tǒng)的研究與建立[D]. 陳進(jìn).中國海洋大學(xué) 2011
本文編號:3497220
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/3497220.html
最近更新
教材專著