freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

自主壓力測試平臺的設(shè)計(jì)與實(shí)現(xiàn)-403-資料下載頁

2025-03-26 03:33本頁面
  

【正文】 TStatistics對應(yīng)于每個(gè)測試用例,保存測試用例的詳細(xì)統(tǒng)計(jì)信息,主要包含了Counter和區(qū)間信息。struct TStatistics{ TCounter counter。 TRegion region[MAX_REGION_NUMBER]。 int region_number。}216。 TCounterTConuter主要保存時(shí)間、成功率等相關(guān)的統(tǒng)計(jì)信息,可用于總體的統(tǒng)計(jì)也可以用于對區(qū)間的統(tǒng)計(jì),主要包括發(fā)送總數(shù)、發(fā)送時(shí)長、成功數(shù)、失敗數(shù)、最大最小時(shí)延等。struct TCounter{ long double total_sum。 long double total_count。 long double success_sum。 long double success_count。 long double failure_sum。 long double failure_count。 long double success_max。 long double success_min。 long double failure_max。 long double failure_min。 char unit[MAX_UNIT_LENGTH]。}216。 TRegionTRegion主要是對用戶設(shè)計(jì)的時(shí)延區(qū)間進(jìn)行統(tǒng)計(jì),統(tǒng)計(jì)信息主要保存與TCounter結(jié)構(gòu)中,begin和end分別對應(yīng)區(qū)間的起止時(shí)間,單位為秒。struct TRegion{ int index。 long double begin。 long double end。 TCounter counter。} 測試配置文件設(shè)計(jì)壓力生成節(jié)點(diǎn)配置文件采用xml格式,具體格式如下:216。 PerformanceTest service nameSELECT/name key77/key tps50/tps modeexplode/mode region begin0/begin end1/end /region /service/PerformanceTest配置文件可包含多個(gè)service,每個(gè)service為一個(gè)測試用例,name定義了測試用例的名稱;key表示用例加載如內(nèi)存時(shí)的邏輯編號;tps表示業(yè)務(wù)初始的tps,在tps動(dòng)態(tài)變化的過程中,不同service的變化比例是以次tps為比例進(jìn)行分配的;mode為并發(fā)模式;region表示統(tǒng)計(jì)區(qū)間,上述例子表示統(tǒng)計(jì)區(qū)間是0秒到1秒,一個(gè)service可增加多個(gè)統(tǒng)計(jì)區(qū)間,區(qū)間支持小數(shù)。216。 dynamicTPS modeincrease/mode period50/period tps10/tps target150/target/dynamicTPSmode表示壓力變化的模式,increase是遞增式,period是周期式;period表示變化的周期,單位為秒;tps表示在一個(gè)變化周期內(nèi)變化的數(shù)值;target在mode為increase時(shí)表示最大tps壓力。 測試結(jié)果文件設(shè)計(jì)自主壓力測試平臺將測試結(jié)果保存與文件當(dāng)中,為了方便測試結(jié)果的讀取以及壓縮測試結(jié)果日志文件的大小,將測試結(jié)果的格式保存為以豎線分隔的格式,具體格式如下:NAME|RUNTIME|TOTALSEND|TPS|AVERAGETIME|SUCCESS|MAXTIME|MINTIME|REGION|AVERAGETIME|PERCENT|MAXTIME|MINTIME|分別表示測試項(xiàng)名稱、運(yùn)行時(shí)長、請求總數(shù)、TPS、平均響應(yīng)時(shí)間、成功數(shù)、最大響應(yīng)時(shí)延、最小響應(yīng)時(shí)延、統(tǒng)計(jì)區(qū)間信息、區(qū)間內(nèi)平均響應(yīng)時(shí)間、區(qū)間占比、區(qū)間內(nèi)最大響應(yīng)時(shí)延、區(qū)間內(nèi)最小響應(yīng)時(shí)延。 關(guān)鍵問題研究及解決方案 壓力模型設(shè)計(jì)及控制機(jī)制216。 問題描述壓力測試平臺需要進(jìn)行容量測試、強(qiáng)度峰值測試、穩(wěn)定性測試以及可擴(kuò)展性測試,面對如此多中的壓力測試的內(nèi)容,單一的壓力模型無法很好的滿足需求。壓力的產(chǎn)生并不是毫無規(guī)律的發(fā)送一系列的模擬請求,需要遵循一定的規(guī)律,從而才能以更加科學(xué)的方式對被測系統(tǒng)進(jìn)行度量。壓力產(chǎn)生的模型主要需要涉及到兩個(gè)方面,一是測試過程中壓力整體的變化模型;二是秒時(shí)段中壓力產(chǎn)生方式的控制。針對上述提到的內(nèi)容,需要設(shè)計(jì)不同的壓力模型,并在測試中對模型進(jìn)行控制,以更加準(zhǔn)確高效的找出系統(tǒng)瓶頸,得到被測系統(tǒng)的各項(xiàng)性能指標(biāo)。216。 方案對比分析針對不同的測試內(nèi)容,提出了以下幾種針對測試過程中壓力整體的變化的模型,下面將做具體的討論分析。1)恒定壓力模型。以固定的壓力進(jìn)行模擬請求,測試過程中壓力的強(qiáng)度始終保持不變。此模型的控制較為簡單,可用于適用于容量測試以及可擴(kuò)展性測試中提供恒定的壓力。該模型在整個(gè)測試過程中,壓力保持不變,故不許在測試中進(jìn)行動(dòng)態(tài)調(diào)整,在此不做過多論述。2)線性增長模型。設(shè)置起始壓力、增長率、終止壓力,由起始壓力開始,按照增長率逐漸對增加模擬請求的壓力,達(dá)到最大壓力后保持不變,其壓力變化曲線如圖411所示。此模型控制相對復(fù)雜,隨著壓力的增長,被測系統(tǒng)可能出現(xiàn)響應(yīng)時(shí)延過長,處理成功率降低等問題,可適用于強(qiáng)度測試。我們使用T表示模型對應(yīng)的壓力值TPS;使用Ts表示預(yù)置的起始壓力;k表示壓力的變化率;tn和ts分別表示測試的當(dāng)前時(shí)間和測試的開始時(shí)間;P表示測試的變化周期。當(dāng)測試壓力未達(dá)到最大壓力時(shí)使用公式(41)表示當(dāng)前壓力,當(dāng)壓力達(dá)到最大值時(shí),使用最大值表示當(dāng)前壓力。 T = Ts+ k(tn ts) / P (41)3)動(dòng)態(tài)變化模型。設(shè)置一個(gè)變化周期,針對每個(gè)周期設(shè)置一個(gè)變化范圍,每經(jīng)過一個(gè)周期,在預(yù)設(shè)的變化范圍內(nèi)隨機(jī)產(chǎn)生TPS值,壓力值隨著時(shí)間在某個(gè)范圍內(nèi)隨機(jī)變化,無固定的規(guī)律,比較符合長期的真實(shí)用戶的訪問情況,適用于穩(wěn)定性測試,用來模擬設(shè)計(jì)場景在每天之中不同時(shí)段TPS的變化情況,下壓力的變化曲線如圖412所示。圖411 線性增長模型壓力變化曲線我們使用T表示模型對應(yīng)的壓力值TPS;使用Ts表示預(yù)置的起始壓力;使用函數(shù)Random (Rmin ,Rmax)表示[Rmin , Rmax]區(qū)間內(nèi)的隨機(jī)數(shù)。則動(dòng)態(tài)變化模型壓力的值TPS由公式(42)確定。表示壓力在圍繞起始壓力進(jìn)行上下的隨機(jī)浮動(dòng)。 T = Ts + Random (Rmin ,Rmax) (42)圖412 動(dòng)態(tài)變化模型壓力變化曲線下面將對較小粒度的秒時(shí)段中壓力產(chǎn)生方式,提出了以下幾種方式,下面將做進(jìn)一步分析。1)爆發(fā)式。每秒開始時(shí)并發(fā)量在同一時(shí)刻產(chǎn)生,下一秒重新產(chǎn)生相同測試并發(fā)量的請求。壓力控制模塊只需要以秒為單位檢查,每當(dāng)開始新的一秒時(shí),即產(chǎn)生新的壓力即可。2)平緩式。每秒的測試并發(fā)量在1秒的時(shí)間段內(nèi)平緩產(chǎn)生,將每秒平均分成10份或更小的粒度,每個(gè)小的單位時(shí)間中產(chǎn)生一定的壓力,下一秒重新以相同方式產(chǎn)生相同測試并發(fā)量的壓力。3)隊(duì)列式。測試并發(fā)保持一定數(shù)量,當(dāng)達(dá)到并發(fā)的數(shù)量限制后,不再發(fā)起新的測試,等待已發(fā)起測試實(shí)例結(jié)束后再發(fā)起新的測試實(shí)例產(chǎn)生。壓力控制模塊在產(chǎn)生新的壓力請求時(shí),先檢查已經(jīng)發(fā)起的壓力請求數(shù)量,如果沒有達(dá)到設(shè)置的TPS值,則不發(fā)起新的請求;如未達(dá)到設(shè)置的TPS值,則發(fā)起新的請求,將請求數(shù)量補(bǔ)滿至設(shè)置的TPS值。圖413是三種壓力產(chǎn)生方式產(chǎn)生壓力的變化情況。最淺色表示爆發(fā)式的壓力產(chǎn)生方式,可以看出,在每秒開始時(shí)的瞬間壓力產(chǎn)生;深灰色表示平緩式的壓力產(chǎn)生方式,壓力在一秒中的十個(gè)時(shí)間點(diǎn)產(chǎn)生,其產(chǎn)生的壓力曲線相對平緩;灰色的是隊(duì)列式的壓力產(chǎn)生方式,圖中可以看出,壓力在每秒的幾個(gè)時(shí)間點(diǎn)產(chǎn)生的數(shù)量并不相同,其原因是,在一秒內(nèi)已有若干請求得到了響應(yīng),所以灰色產(chǎn)生的壓力只是補(bǔ)齊不足的壓力。圖413 三種壓力產(chǎn)生方式對比圖設(shè)計(jì)好了壓力的產(chǎn)生模型以及秒級別的壓力產(chǎn)生模式,下面要討論如何在程序中使用。壓力產(chǎn)生模型在測試開始前通過配置文件保存到測試平臺,在進(jìn)程啟動(dòng)時(shí),將模型的關(guān)鍵信息寫入共享內(nèi)存,同時(shí)共享內(nèi)存中維護(hù)一個(gè)字段指明當(dāng)前需要產(chǎn)生的壓力TPS值,之后按照壓力產(chǎn)生模型周期性的計(jì)算壓力值并更新到共享內(nèi)存中,壓力在進(jìn)行測試業(yè)務(wù)觸發(fā)時(shí),將根據(jù)內(nèi)存中的值觸發(fā),從而達(dá)到控制壓力產(chǎn)生模型的目的。測試壓力的產(chǎn)生以秒為單位,在SCF的主循環(huán)中潛入一段循環(huán)程序,按照秒級別的壓力產(chǎn)生模式,在固定的時(shí)間點(diǎn)上產(chǎn)生所需壓力即可。 異步壓力產(chǎn)生機(jī)制的實(shí)現(xiàn)216。 問題描述針對自主平臺的測試,我們在需求中提出了采用異步請求的方式提供虛擬壓力。與同步壓力不同,新的請求不是在收到上一請求的響應(yīng)后才發(fā)送的,而是根據(jù)預(yù)設(shè)值,每秒產(chǎn)生額定壓力請求。圖414描述了同步請求與異步請求在發(fā)送消息時(shí)的區(qū)別。圖414 同步請求與異步請求消息對比由上圖可以看出,對于同步的壓力請求,測試工具請求2是在收到請求1的響應(yīng)后才可以發(fā)出的,在第二秒的時(shí)間里,測試系統(tǒng)其實(shí)是沒有對被測系統(tǒng)產(chǎn)生任何壓力的,這給了被測系統(tǒng)以喘息的機(jī)會(huì)。而異步的壓力請求則不同,無論是否收到了先前請求的響應(yīng),測試工具會(huì)在每秒鐘固定發(fā)起請求,這就保證了測試工具能持續(xù)的向被測系統(tǒng)施壓,從而可以更好的反映出被測系統(tǒng)的真實(shí)處理能力。異步的壓力機(jī)制并不代表在發(fā)出消息后,完全不理會(huì)消息的響應(yīng),因?yàn)闇y試平臺本身還需要對壓力的執(zhí)行情況進(jìn)行相應(yīng)的統(tǒng)計(jì)。因此,此處的異步壓力的產(chǎn)生機(jī)制應(yīng)該從增加并發(fā)處理量上來進(jìn)行考慮。當(dāng)需要產(chǎn)生新的請求時(shí),上一請求如果沒有收到響應(yīng),可以繼續(xù)保持一段時(shí)間,新的請求將與原有請求無關(guān),從而達(dá)到產(chǎn)生異步壓力的目的。216。 解決方案方案一:采用多線程的方式。每秒使用新的線程產(chǎn)生壓力,由于線程的創(chuàng)建開銷較大,可使用線程池的技術(shù),在測試開始前由測試進(jìn)程創(chuàng)建一個(gè)線程池,當(dāng)需要產(chǎn)生新的請求時(shí),只需從線程池中取得空閑線程并使用該線程產(chǎn)生新的請求。當(dāng)請求結(jié)束收到被測系統(tǒng)響應(yīng)或超時(shí)后,線程重新放入線程池中供后續(xù)請求使用。當(dāng)并發(fā)量較高時(shí),需要在線程池中保持較多的線程,以保證線程池中有充足的線程可供使用。方案二:采用多進(jìn)程加多自動(dòng)機(jī)的方式。同過系統(tǒng)級別的多進(jìn)程與進(jìn)程級別的多自動(dòng)機(jī)的方式產(chǎn)生異步的壓力。多個(gè)進(jìn)程根據(jù)測試任務(wù)預(yù)定的壓力值,平均分配需要產(chǎn)生的壓力,當(dāng)產(chǎn)生新的壓力時(shí),產(chǎn)生一個(gè)新的自動(dòng)機(jī)向被測系統(tǒng)發(fā)起請求。自動(dòng)機(jī)運(yùn)行與測試平臺的進(jìn)程之上,平臺會(huì)在一個(gè)周期內(nèi)輪詢所有自動(dòng)機(jī),處理并執(zhí)行自動(dòng)機(jī)對應(yīng)的業(yè)務(wù)腳本,自動(dòng)機(jī)之間的切換并不會(huì)引起操作系統(tǒng)級別的調(diào)用,可以認(rèn)為自動(dòng)機(jī)的切換幾乎沒有代價(jià)。因而,每個(gè)進(jìn)程能夠同時(shí)保持大量的自動(dòng)機(jī),從而可以滿足異步產(chǎn)生壓力的需求。216。 方案對比分析采用多線程的方式,線程的調(diào)用切換都有操作系統(tǒng)完成,實(shí)現(xiàn)時(shí)只需調(diào)用系統(tǒng)接口即可,但是線程的切換需要占用一定的時(shí)間,在效率上雖然比進(jìn)程間的切換高,但是比自動(dòng)機(jī)的切換慢,此外,線程也會(huì)占用一定的系統(tǒng)資源,因此線程的多少理論上受到內(nèi)存的限制,一臺2G內(nèi)存的機(jī)器,按照每個(gè)線程分配1M??臻g來說,不考慮操作系統(tǒng)保留的內(nèi)存,最多理論能啟動(dòng)2048個(gè)線程;多進(jìn)程加多自動(dòng)機(jī)的方式實(shí)現(xiàn),需要在程序內(nèi)部實(shí)現(xiàn)一套自動(dòng)機(jī)的調(diào)用機(jī)制,自動(dòng)機(jī)使用的是進(jìn)程的資源,CINSCF平臺已經(jīng)實(shí)現(xiàn)了比較完整的自動(dòng)機(jī)的調(diào)用機(jī)制,理論上每個(gè)進(jìn)程可以支持8192自動(dòng)機(jī),完全可以滿足產(chǎn)生異步壓力的需求。綜合上述結(jié)果,通過多進(jìn)程加多自動(dòng)機(jī)的方式實(shí)現(xiàn)可以在占用較低資源的同時(shí)支持較高的并發(fā)量,并且自動(dòng)機(jī)的執(zhí)行情況不會(huì)影響到測試進(jìn)程本身的執(zhí)行(線程的異常會(huì)影響進(jìn)程的執(zhí)行),同時(shí)CINSCF平臺提供了對進(jìn)程以及自動(dòng)機(jī)的相關(guān)控制功能,測試平臺只需要在此基礎(chǔ)之上根據(jù)需求進(jìn)行相應(yīng)的改造即可,進(jìn)程間的同步可以采用共享內(nèi)存的方式。 本章小結(jié)本章主要對自主壓力測試平臺進(jìn)行了概要設(shè)計(jì)。首先總體介紹了自主壓力測試平臺的位置;之后設(shè)計(jì)了壓力測試平臺的靜態(tài)結(jié)構(gòu),并進(jìn)行了論述;之后根據(jù)第三章需求分析中確定的需求,詳細(xì)說明了壓力測試平臺的關(guān)鍵流程;然后分析了壓力測試平臺的數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì);最后分析論述了壓力測試平臺實(shí)現(xiàn)過程中需要解決的關(guān)鍵問題以及解決方案。第五章 自主平臺的壓力測試平臺的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)上一章中,已經(jīng)從系統(tǒng)環(huán)境、系統(tǒng)靜態(tài)結(jié)構(gòu)、系統(tǒng)動(dòng)態(tài)結(jié)構(gòu)這三個(gè)方面討論了壓力測試平臺的總體設(shè)計(jì)方案,并給出了關(guān)鍵業(yè)務(wù)流程中涉及的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)接下來將按照對自主壓力測試平臺的三個(gè)子系統(tǒng)進(jìn)行詳細(xì)的設(shè)計(jì)與實(shí)現(xiàn)。12345 壓力產(chǎn)生及控制子系統(tǒng)壓力產(chǎn)生及控制子系統(tǒng)主要負(fù)責(zé)產(chǎn)生測試所需要的壓力,是整個(gè)壓力測試平臺的核心功能組成部分。壓力產(chǎn)生及控制子系統(tǒng)是在CINSCF中間件的基礎(chǔ)上二次開發(fā)的程序,利用CINSCF中間件提供的對自動(dòng)機(jī)的管理及調(diào)度功能,通過消息或命令的觸發(fā)方式,將業(yè)務(wù)腳本加載到自動(dòng)機(jī)上執(zhí)行。CINSCF單個(gè)進(jìn)程支持8192個(gè)自動(dòng)機(jī)實(shí)例,SCF調(diào)度器將測試腳本分為一連串的業(yè)務(wù)無關(guān)的構(gòu)件塊(SIB, Service Independent Building block),周期性的輪詢所有自動(dòng)機(jī),每個(gè)自動(dòng)機(jī)執(zhí)行一定的SIB塊。自主壓力測試平臺就是在此基礎(chǔ)上,利用CINSCF提供的API,為SLEE增加了測試任務(wù)的調(diào)度、測試壓力的控制、測試結(jié)果的統(tǒng)計(jì)功能。測試執(zhí)行后,由自主壓力測試平臺本身根據(jù)策略等信息,從腳本庫中選取響應(yīng)的測試腳本,進(jìn)行業(yè)務(wù)的觸發(fā),從而產(chǎn)生對被測系統(tǒng)的模擬壓力。CINSCF中間件的SLEE包含一個(gè)主循環(huán)(MainLoop),程序運(yùn)行時(shí)進(jìn)入主循環(huán)中,循環(huán)中不斷執(zhí)行各種任務(wù),直到程序被終止。SCF原有的SLEE運(yùn)行流程如圖51所示。1) CINSCF中間件通過ininit命令啟動(dòng),SLEE進(jìn)入到主循環(huán)之中;2) 接收端口以及連接上的各種消息,消息被放入消息隊(duì)列之中;3) 不同的協(xié)議根據(jù)配置內(nèi)容觸發(fā)相應(yīng)的業(yè)務(wù)
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1