本(ben)發明涉及一(yi)種大數據系(xi)統(tong)性(xing)能(neng)(neng)評(ping)估(gu)方法,特別是(shi)關于(yu)一(yi)種基于(yu)資(zi)源(yuan)解耦的(de)大數據系(xi)統(tong)性(xing)能(neng)(neng)評(ping)估(gu)方法。
背景技術:
以往工作已經廣泛地研究了如何量(liang)化大數據系統的(de)(de)部件影響,包括兩個(ge)分(fen)支。一些工作是量(liang)化軟件框架部件的(de)(de)影響以分(fen)析時間開銷。mapreduce和(he)spark中主要組成部分(fen)的(de)(de)性(xing)(xing)能(neng)比較為源代(dai)碼添(tian)加了定時器來(lai)提供執行時間分(fen)解(jie),并分(fen)析了隨機訪問,執行模型(xing)和(he)緩(huan)存的(de)(de)性(xing)(xing)能(neng)。hadoop的(de)(de)基(ji)于成本的(de)(de)性(xing)(xing)能(neng)模型(xing)通過描述細粒度的(de)(de)執行來(lai)預測mapreduce作業的(de)(de)性(xing)(xing)能(neng),而starfish可以使用自調(diao)節系統。
其他(ta)工作就是量化硬(ying)件資源的(de)(de)影響來分(fen)析哪個部件是瓶(ping)頸.r的(de)(de)運行時(shi)間(jian)配(pei)置將收集計數器添加到(dao)r源代碼中,分(fen)析處理器和內存使(shi)用特性。spark的(de)(de)阻塞時(shi)間(jian)分(fen)析方法消除了磁盤(pan)和網絡i/o,以便在磁盤(pan)或(huo)網絡無限快的(de)(de)情況下獲得(de)兩個最大(da)加速。
大數據系(xi)統的(de)(de)性能總是(shi)受到cpu、內存、磁(ci)盤和網絡(luo)的(de)(de)影響(xiang),為了量化這(zhe)些(xie)部(bu)(bu)件對(dui)性能的(de)(de)影響(xiang),進行(xing)系(xi)統瓶頸分析(xi)非常重(zhong)要(yao)。但(dan)是(shi)最先進的(de)(de)部(bu)(bu)件耦合(he)方法卻只能某些(xie)部(bu)(bu)件的(de)(de)影響(xiang),如磁(ci)盤和網絡(luo),并且結(jie)果(guo)還容易出錯(cuo)。
技術實現要素:
針(zhen)對上述問題,本發明的(de)目的(de)是提供(gong)一種基于資源解(jie)(jie)耦的(de)大數(shu)據系(xi)統性能(neng)評(ping)估方(fang)法(fa),該方(fang)法(fa)能(neng)動態解(jie)(jie)耦cpu,內(nei)存,磁盤和網絡四大部(bu)件,能(neng)確保定量影響因(yin)素(su)之間相互比較,量化了密(mi)集(ji)度(du)。
為(wei)(wei)(wei)(wei)實(shi)現(xian)上述目的(de)(de)(de),本發明(ming)采取(qu)以下(xia)技(ji)術方(fang)案:一(yi)種基于資源解耦的(de)(de)(de)大(da)數(shu)(shu)據(ju)系統(tong)性能(neng)評估(gu)方(fang)法(fa),其(qi)(qi)特征(zheng)在于包括(kuo)以下(xia)步(bu)驟:1)形式(shi)化不(bu)同(tong)(tong)的(de)(de)(de)硬(ying)件集(ji)(ji)(ji)合(he)(he):假(jia)設當前集(ji)(ji)(ji)群(qun)下(xia),cf={c1,c2,…,cl}為(wei)(wei)(wei)(wei)同(tong)(tong)一(yi)處(chu)理器的(de)(de)(de)不(bu)同(tong)(tong)頻(pin)(pin)率(lv)升序集(ji)(ji)(ji)合(he)(he),并選(xuan)(xuan)(xuan)取(qu)最(zui)(zui)小值c1作為(wei)(wei)(wei)(wei)參(can)考(kao)(kao)頻(pin)(pin)率(lv),即提(ti)高(gao)cpu頻(pin)(pin)率(lv)查詢(xun)所(suo)(suo)獲得的(de)(de)(de)性能(neng)提(ti)升是(shi)相對于c1頻(pin)(pin)率(lv)的(de)(de)(de),cl為(wei)(wei)(wei)(wei)該處(chu)理器最(zui)(zui)大(da)cpu頻(pin)(pin)率(lv),l為(wei)(wei)(wei)(wei)cf集(ji)(ji)(ji)合(he)(he)可(ke)選(xuan)(xuan)(xuan)的(de)(de)(de)cpu頻(pin)(pin)率(lv)個(ge)數(shu)(shu);同(tong)(tong)理定(ding)義(yi)db={d1,d2,…,dm}為(wei)(wei)(wei)(wei)可(ke)選(xuan)(xuan)(xuan)的(de)(de)(de)硬(ying)盤集(ji)(ji)(ji)合(he)(he),其(qi)(qi)中d1作為(wei)(wei)(wei)(wei)參(can)考(kao)(kao),dm為(wei)(wei)(wei)(wei)最(zui)(zui)大(da)硬(ying)盤帶(dai)寬(kuan),m為(wei)(wei)(wei)(wei)db集(ji)(ji)(ji)合(he)(he)可(ke)選(xuan)(xuan)(xuan)的(de)(de)(de)硬(ying)盤帶(dai)寬(kuan)個(ge)數(shu)(shu);nb={n1,n2,…,nz}為(wei)(wei)(wei)(wei)可(ke)選(xuan)(xuan)(xuan)的(de)(de)(de)網(wang)(wang)絡(luo)集(ji)(ji)(ji)合(he)(he),其(qi)(qi)中n1作為(wei)(wei)(wei)(wei)參(can)考(kao)(kao),nz為(wei)(wei)(wei)(wei)最(zui)(zui)大(da)網(wang)(wang)絡(luo)帶(dai)寬(kuan),z為(wei)(wei)(wei)(wei)nb集(ji)(ji)(ji)合(he)(he)可(ke)選(xuan)(xuan)(xuan)的(de)(de)(de)網(wang)(wang)絡(luo)帶(dai)寬(kuan)個(ge)數(shu)(shu);2)定(ding)義(yi)cpu、硬(ying)盤和(he)網(wang)(wang)絡(luo)升級(ji)(ji)后所(suo)(suo)帶(dai)來(lai)的(de)(de)(de)加速;3)根(gen)據(ju)cpu、硬(ying)盤和(he)網(wang)(wang)絡(luo)升級(ji)(ji)后所(suo)(suo)帶(dai)來(lai)的(de)(de)(de)加速確定(ding)各(ge)自量化瓶頸,即確定(ding)各(ge)自密(mi)集(ji)(ji)(ji)度(du)(du)(du)模(mo)型,通過密(mi)集(ji)(ji)(ji)度(du)(du)(du)模(mo)型評估(gu)各(ge)自的(de)(de)(de)密(mi)集(ji)(ji)(ji)度(du)(du)(du),完成大(da)數(shu)(shu)據(ju)系統(tong)性能(neng)評估(gu)。
進(jin)一步(bu),所述步(bu)驟2)中,定義runtime(c,d,n)為(wei)某查詢在指定硬件配(pei)置下的運行時間,若cpu頻率提(ti)升(sheng)到ci且其他部件保持(chi)不變,那么查詢所獲(huo)得的cpu加(jia)速(su)cs為(wei):
其中,cs∈[0,1),且(qie)cs越(yue)(yue)接近1代表查詢性能提升越(yue)(yue)高。
進一步(bu),所述(shu)步(bu)驟2)中,定義(yi)runtime(c,d,n)為(wei)某查(cha)詢在指定硬件配(pei)置下的運行時間,如果(guo)僅升級硬盤到(dao)dj,定義(yi)升級硬盤后查(cha)詢所獲得的加速ds為(wei):
其中(zhong),ds∈[0,1)。
進一(yi)步,所(suo)述步驟2)中,定(ding)義(yi)runtime(c,d,n)為某(mou)查(cha)詢在(zai)指定(ding)硬件配置(zhi)下(xia)的運行(xing)時(shi)間,僅(jin)升級網絡到nk,定(ding)義(yi)更快的網絡使查(cha)詢所(suo)獲得的加速ns為:
其中,ns∈[0,1)。
進一步,通過cpu升級后(hou)所帶來(lai)的加(jia)速cs定義cpu量(liang)化瓶頸cid為:
其中,l為可選的cpu頻率個(ge)數,且(qie)cid∈[0,1],d為一種任(ren)意的硬盤帶寬環境,n為一種任(ren)意的網(wang)絡帶寬環境;對于頻率ci,如果(guo)cs(ci,d,n)=1-c1/ci,則(ze)cid=1代表查詢為完全計(ji)算密集的;相(xiang)反,如果(guo)cs(ci,d,n)=0,則(ze)cid=0代表升(sheng)級cpu對查詢的性(xing)能的提高無效,此時查詢為完全非(fei)計(ji)算密集的。
進一步(bu),在當(dang)前集群環境下,量(liang)化硬盤瓶頸did為:
其中,m是可選(xuan)硬(ying)盤(pan)(pan)的(de)個數(shu),如cid性質一致則did∈[0,1],硬(ying)盤(pan)(pan)瓶頸(jing)越高,did越趨近(jin)于(yu)1,反之亦然(ran)。
進一(yi)步(bu),當前集群環境下,網絡瓶(ping)頸nid為:
其中,z為可選的網絡(luo)個(ge)數,且(qie)nid∈[0,1],nid值越高代表網絡(luo)瓶頸越嚴重。
進一步,選擇(ze)集群環境中最(zui)快的i/o部(bu)件最(zui)小化(hua)其對訪存瓶頸(jing)的影(ying)響(xiang),定義訪存瓶頸(jing)mid為:
mid≤1-cid(dm,nz),
其中,mid∈[0,1],mid越(yue)大(da)訪存瓶頸越(yue)嚴(yan)重,且dm和(he)nz是當前集(ji)群環境最(zui)優的i/o部件(jian)。
本發(fa)明(ming)由(you)于采取以上技(ji)術方案,其具(ju)有以下優點:本發(fa)明(ming)通過密(mi)集度(du)模(mo)型來評估cpu,內存,磁盤和網(wang)絡(luo)對性能的影響(xiang),該模(mo)型使用(yong)實(shi)際(ji)加(jia)速作為(wei)輸(shu)入,并(bing)可(ke)以確保定(ding)量影響(xiang)因素(su)之間相互(hu)比(bi)較,量化了密(mi)集度(du)。
具體實施方式
下(xia)面結(jie)合實施例對(dui)本發明進(jin)行詳細的描述。
本(ben)發明提供一種基于(yu)資(zi)源(yuan)解(jie)耦的大(da)數據系統性(xing)能評估方法,其(qi)包括(kuo)以(yi)下步驟(zou):
1)形式化不(bu)同的硬(ying)件(jian)集(ji)合:假設當前集(ji)群(qun)下(xia),cf={c1,c2,…,cl}為同一(yi)處(chu)理器的不(bu)同頻(pin)率(lv)(lv)(lv)升序集(ji)合,并選取最(zui)(zui)小(xiao)值c1作為參(can)考(kao)(kao)頻(pin)率(lv)(lv)(lv),即(ji)提高(gao)cpu頻(pin)率(lv)(lv)(lv)查詢所獲(huo)得(de)的性能提升是相(xiang)對于c1頻(pin)率(lv)(lv)(lv)的,cl為該處(chu)理器最(zui)(zui)大(da)cpu頻(pin)率(lv)(lv)(lv),l為cf集(ji)合可(ke)選的cpu頻(pin)率(lv)(lv)(lv)個(ge)數。同理,可(ke)定義db={d1,d2,…,dm}為可(ke)選的硬(ying)盤集(ji)合,其中(zhong)d1作為參(can)考(kao)(kao),dm為最(zui)(zui)大(da)硬(ying)盤帶寬(kuan)(kuan)(kuan),m為db集(ji)合可(ke)選的硬(ying)盤帶寬(kuan)(kuan)(kuan)個(ge)數;nb={n1,n2,…,nz}為可(ke)選的網(wang)絡集(ji)合,其中(zhong)n1作為參(can)考(kao)(kao),nz為最(zui)(zui)大(da)網(wang)絡帶寬(kuan)(kuan)(kuan),z為nb集(ji)合可(ke)選的網(wang)絡帶寬(kuan)(kuan)(kuan)個(ge)數。被(bei)選出(chu)的參(can)考(kao)(kao)硬(ying)件(jian)僅為方便后(hou)續計(ji)算,并非固(gu)定不(bu)變。
2)定(ding)義cpu、硬(ying)盤和網絡(luo)升級后(hou)所(suo)帶來的加(jia)速:
定義runtime(c,d,n)為某(mou)查(cha)詢在指(zhi)定硬件(jian)配置下的運(yun)行時間,若cpu頻率(lv)提升到(dao)ci(ci為cf集(ji)合的某(mou)一給定值,i∈{2,3,…,l})且其(qi)他部件(jian)保持不變,那么查(cha)詢所獲得的cpu加速cs可定義為:
其(qi)中,cs∈[0,1),且cs越接近1代表查(cha)詢性能提升越高(gao)。
如果僅(jin)升(sheng)級(ji)(ji)硬(ying)盤到dj(dj為db集合的某一給定(ding)值,j∈{2,3,…,m}),效仿公式(1),定(ding)義升(sheng)級(ji)(ji)硬(ying)盤后查詢所獲得(de)的加速ds為:
其中(zhong),ds∈[0,1)。
僅升級網絡(luo)到nk(nk為nb集合的(de)某一給定(ding)值(zhi),k∈{2,3,…,z}),定(ding)義更(geng)快的(de)網絡(luo)使查詢(xun)所獲得的(de)加速ns為:
其(qi)中,ns∈[0,1)。cs用于定(ding)義量化(hua)瓶頸,而ds和ns用于實驗(yan)部分(fen)驗(yan)證量化(hua)方法的(de)正確(que)性。
3)根據(ju)cpu、硬盤和網絡升級后所帶來的加速確定各(ge)自量化瓶頸(jing),即確定各(ge)自密(mi)集度模(mo)型(xing),通過密(mi)集度模(mo)型(xing)評估各(ge)自的密(mi)集度,完成大(da)數(shu)據(ju)系統性能(neng)評估。
3.1)對于cpu瓶(ping)頸:如果某查(cha)詢(xun)(xun)的(de)加(jia)速cs越(yue)接近1-c1/ci,說(shuo)明該(gai)查(cha)詢(xun)(xun)的(de)性能(neng)提(ti)(ti)升(sheng)(sheng)和(he)cpu頻率(lv)(lv)的(de)提(ti)(ti)升(sheng)(sheng)成(cheng)線(xian)性正比(bi)(bi)關(guan)系(xi),而(er)表現(xian)出(chu)的(de)現(xian)象為該(gai)查(cha)詢(xun)(xun)越(yue)cpu-bound。這種情況在現(xian)實中是存在的(de),現(xian)在多數的(de)分布(bu)式數據處(chu)理引擎都是異步i/o方式,當計算時(shi)(shi)間(jian)完全(quan)覆蓋(gai)i/o阻塞時(shi)(shi)間(jian)時(shi)(shi),查(cha)詢(xun)(xun)就不會(hui)因(yin)i/o而(er)等待,表現(xian)出(chu)完全(quan)的(de)計算密(mi)集(ji)型。隨著cpu頻率(lv)(lv)提(ti)(ti)升(sheng)(sheng),這個現(xian)象如果得(de)到保持,就會(hui)表現(xian)出(chu)查(cha)詢(xun)(xun)性能(neng)的(de)提(ti)(ti)升(sheng)(sheng)與頻率(lv)(lv)提(ti)(ti)升(sheng)(sheng)的(de)線(xian)性正相關(guan)關(guan)系(xi)。本發明比(bi)(bi)觀(guan)察(cha)cpu利用(yong)率(lv)(lv)具(ju)有優勢,因(yin)訪存而(er)造成(cheng)的(de)cpu停頓(dun)周期會(hui)計入cpu利用(yong)率(lv)(lv),可能(neng)造成(cheng)訪存密(mi)集(ji)誤判為計算密(mi)集(ji)。因(yin)此,通過cpu升(sheng)(sheng)級(ji)后所(suo)帶來的(de)加(jia)速cs定義cpu量化瓶(ping)頸cid為:
其中,l為(wei)可(ke)選的(de)cpu頻率個數(shu),且cid∈[0,1],d為(wei)一種(zhong)任(ren)意的(de)硬(ying)盤帶(dai)寬環境(jing),n為(wei)一種(zhong)任(ren)意的(de)網絡帶(dai)寬環境(jing)。對(dui)于頻率ci,如果cs(ci,d,n)=1-c1/ci,則可(ke)得cid=1代表查(cha)詢(xun)(xun)(xun)為(wei)完全計算(suan)密(mi)集的(de)(cpu-bound);相反,如果cs(ci,d,n)=0,則可(ke)得cid=0代表升級cpu對(dui)查(cha)詢(xun)(xun)(xun)的(de)性(xing)能的(de)提高無效,此(ci)時查(cha)詢(xun)(xun)(xun)為(wei)完全非(fei)計算(suan)密(mi)集的(de)(noncpu-bound)。
3.2)對(dui)于硬盤(pan)與網絡瓶頸:對(dui)于i/o部(bu)件來說,很(hen)難精確觀(guan)察其對(dui)某一查詢所能提供的(de)最大加速(su),因此并(bing)不能使(shi)用類似cpu瓶頸的(de)量化(hua)解法求i/o部(bu)件的(de)瓶頸。
已(yi)知cid代表cpu的(de)量化(hua)瓶(ping)(ping)頸(jing),那(nei)么1-cid即(ji)為非(fei)cpu部(bu)(bu)件(jian)的(de)量化(hua)瓶(ping)(ping)頸(jing)。假如非(fei)cpu部(bu)(bu)件(jian)無限(xian)快(kuai),那(nei)么cid=1,查(cha)詢必(bi)然(ran)轉為完全(quan)計算密集的(de),因(yin)為無i/o阻塞和cpu停(ting)頓。現(xian)(xian)實中,非(fei)cpu部(bu)(bu)件(jian)所(suo)產(chan)生的(de)阻塞或停(ting)頓,引起了各部(bu)(bu)件(jian)的(de)瓶(ping)(ping)頸(jing),反應的(de)現(xian)(xian)象為查(cha)詢性(xing)能與cpu頻率的(de)非(fei)正相關(guan)關(guan)系,因(yin)此1-cid為非(fei)cpu部(bu)(bu)件(jian)瓶(ping)(ping)頸(jing)的(de)混合體。
因(yin)此,在其(qi)(qi)他部(bu)(bu)(bu)件保持(chi)不(bu)(bu)變的(de)情況下,單一升級(ji)i/o部(bu)(bu)(bu)件,必然會導致cpu瓶(ping)(ping)(ping)(ping)頸(jing)(jing)的(de)進一步提高,或(huo)者說非cpu部(bu)(bu)(bu)件瓶(ping)(ping)(ping)(ping)頸(jing)(jing)的(de)減少。減少量(liang)(liang)(liang)(liang)可視為當前i/o部(bu)(bu)(bu)件的(de)量(liang)(liang)(liang)(liang)化(hua)(hua)瓶(ping)(ping)(ping)(ping)頸(jing)(jing)。因(yin)此,本(ben)發(fa)明(ming)本(ben)質(zhi)上(shang)是從(cong)非cpu部(bu)(bu)(bu)件瓶(ping)(ping)(ping)(ping)頸(jing)(jing)剝離出i/o部(bu)(bu)(bu)件的(de)量(liang)(liang)(liang)(liang)化(hua)(hua)瓶(ping)(ping)(ping)(ping)頸(jing)(jing)。理想狀態下,只有(you)無限快的(de)i/o部(bu)(bu)(bu)件才能(neng)完全(quan)剝離出絕對量(liang)(liang)(liang)(liang)化(hua)(hua)瓶(ping)(ping)(ping)(ping)頸(jing)(jing),但無限快的(de)部(bu)(bu)(bu)件不(bu)(bu)可能(neng)出現,其(qi)(qi)次使用真實升級(ji)部(bu)(bu)(bu)件剝離出的(de)i/o瓶(ping)(ping)(ping)(ping)頸(jing)(jing)更具備實際參考價值。在當前集群環境下,可量(liang)(liang)(liang)(liang)化(hua)(hua)硬盤瓶(ping)(ping)(ping)(ping)頸(jing)(jing)did為:
其中,m是(shi)可選(xuan)硬(ying)盤的個數,如(ru)cid性質一致則did∈[0,1],硬(ying)盤瓶頸越(yue)(yue)高,did越(yue)(yue)趨近于1,反之亦然(ran)。
類似硬盤瓶頸,當前(qian)集群環境下(xia),網絡瓶頸nid為:
其(qi)中(zhong),z為(wei)可選(xuan)的(de)網絡個數(shu),且nid∈[0,1],nid值(zhi)越高(gao)代(dai)表(biao)網絡瓶頸越嚴(yan)重。
3.3)對于訪(fang)存(cun)(cun)(cun)瓶(ping)頸(jing)(jing)(jing):不(bu)同于上述三(san)種部(bu)件的(de)量化方法(fa),訪(fang)存(cun)(cun)(cun)瓶(ping)頸(jing)(jing)(jing)并不(bu)能(neng)(neng)(neng)(neng)使用(yong)升級硬件的(de)方法(fa)有效量化,因此(ci)僅(jin)能(neng)(neng)(neng)(neng)量化訪(fang)存(cun)(cun)(cun)瓶(ping)頸(jing)(jing)(jing)最(zui)大值,原因如下(xia):(1)當(dang)前消(xiao)費級主(zhu)存(cun)(cun)(cun)的(de)性能(neng)(neng)(neng)(neng)提高有限,如測試結(jie)果顯示ddr3-1600ram相(xiang)對于ddr3-1333ram僅(jin)能(neng)(neng)(neng)(neng)提高stream性能(neng)(neng)(neng)(neng)的(de)5.8%。(2)訪(fang)存(cun)(cun)(cun)性能(neng)(neng)(neng)(neng)和(he)算法(fa)高度相(xiang)關,并不(bu)能(neng)(neng)(neng)(neng)通過(guo)升級高速(su)緩存(cun)(cun)(cun)和(he)主(zhu)存(cun)(cun)(cun)儲器,實現訪(fang)存(cun)(cun)(cun)性能(neng)(neng)(neng)(neng)的(de)提升;(3)僅(jin)無限快的(de)i/o部(bu)件才(cai)能(neng)(neng)(neng)(neng)完全使非(fei)cpu部(bu)件瓶(ping)頸(jing)(jing)(jing)轉化為訪(fang)存(cun)(cun)(cun)瓶(ping)頸(jing)(jing)(jing)。因此(ci),可選擇集群環境(jing)中(zhong)最(zui)快的(de)i/o部(bu)件最(zui)小(xiao)化其對訪(fang)存(cun)(cun)(cun)瓶(ping)頸(jing)(jing)(jing)的(de)影響,定義訪(fang)存(cun)(cun)(cun)瓶(ping)頸(jing)(jing)(jing)mid為:
mid≤1-cid(dm,nz),(7)
其中,mid∈[0,1],mid越(yue)大(da)訪(fang)存瓶頸(jing)越(yue)嚴重(zhong),且dm和nz是(shi)當前集群環境最優的i/o部件。
上述各(ge)(ge)實施例(li)僅用于說明(ming)本(ben)(ben)發(fa)明(ming),各(ge)(ge)部(bu)件的(de)(de)結構(gou)、尺寸(cun)、設置位置及形狀都是可以有所變(bian)化的(de)(de),在本(ben)(ben)發(fa)明(ming)技(ji)術方(fang)案的(de)(de)基礎上,凡根據本(ben)(ben)發(fa)明(ming)原理對個別部(bu)件進行的(de)(de)改進和等同變(bian)換(huan),均不應排(pai)除在本(ben)(ben)發(fa)明(ming)的(de)(de)保護范圍之外。