基于P2P和CDN的監(jiān)控傳輸子系統(tǒng)的設(shè)計(jì)
實(shí)驗(yàn)通過傳輸子系統(tǒng)從負(fù)載發(fā)生器下載數(shù)據(jù)來模擬大量數(shù)據(jù)請(qǐng)求,并分別收集下列三種模型的實(shí)驗(yàn)數(shù)據(jù):
(1)傳統(tǒng)多線程阻塞模型,即每個(gè)現(xiàn)存阻塞得處理一個(gè)單獨(dú)的請(qǐng)求,在圖3中用A表示,并簡稱為A模型。
(2)固定線程數(shù)目的線程池,初試線程數(shù)采用CPU個(gè)數(shù)的2倍加2來確定,即10個(gè)初始線程,在圖3中用B表示,并簡稱為B模型。
(3)采用該文提出的線程池動(dòng)態(tài)管理算法的模型,初試線程個(gè)數(shù)也為10個(gè),在圖3中用C表示,并簡稱C模型。
4.2 分析數(shù)據(jù)得平均值
下面數(shù)據(jù)均是通過nmon采樣和ninon analyser分析得到的平均值。
(1)CPU使用率比較。從圖3中可以看到,在A模型中,基本已經(jīng)占用了所有的CPU資源。因?yàn)槊總€(gè)線程服務(wù)一個(gè)請(qǐng)求,一旦請(qǐng)求大量到來,就會(huì)有大量的線程產(chǎn)生。而在B模型中,因?yàn)榫€程個(gè)數(shù)固定,且已經(jīng)預(yù)先創(chuàng)建好,當(dāng)請(qǐng)求量過大時(shí),任務(wù)隊(duì)列會(huì)起到很好的緩沖作用。C模型是效果最好的,因?yàn)榫€程個(gè)數(shù)總是會(huì)被調(diào)整到最佳的個(gè)數(shù),并且任務(wù)池的使用有效減少了系統(tǒng)中頻繁的內(nèi)存申請(qǐng)和釋放操作。本文引用地址:http://www.ex-cimer.com/article/158040.htm
(2)空閑內(nèi)存比較。從圖4中可以容易分析得到,當(dāng)請(qǐng)求的總量相同的情況下,A和B模型占用的內(nèi)存情況很接近。但是C模型中,任務(wù)池和線程池的大小都是動(dòng)態(tài)伸縮的,提高了系統(tǒng)的處理能力,自然也會(huì)使用更多的內(nèi)存。
(3)網(wǎng)絡(luò)I/O流量比較。圖5展現(xiàn)了3種模型的網(wǎng)絡(luò)I/O情況,在A模型中,因?yàn)椴捎玫氖亲枞姆绞竭M(jìn)行的,當(dāng)套口已經(jīng)沒有數(shù)據(jù)可讀,線程會(huì)阻塞等待數(shù)據(jù)的到達(dá),而其他已經(jīng)有數(shù)據(jù)到達(dá)的套接口則可能得不到處理,因此A模型的網(wǎng)絡(luò)吞吐量比較低。在B模型中,采用的非阻塞和線程池模型,一旦一個(gè)套接口將要發(fā)生阻塞,線程可以很快切換到其他已經(jīng)有數(shù)據(jù)準(zhǔn)備好的套接口上,加快了數(shù)據(jù)的接收速度,因此也提高了網(wǎng)絡(luò)的傳輸速度。在C模型中,減小了內(nèi)存和CPU等部件的負(fù)載,提高了性能,動(dòng)態(tài)任務(wù)池使得系統(tǒng)有比B模型更好的緩存能力,因此C模型比B模型網(wǎng)絡(luò)吞吐量更高是可以理解的。系統(tǒng)采用的是l 000 Mb/s網(wǎng)卡,基本達(dá)到了網(wǎng)卡的極限。
5 結(jié) 語
根據(jù)統(tǒng)計(jì)線程池中的各個(gè)線程的平均等待時(shí)間和當(dāng)前CPU的使用率,對(duì)線程池的尺寸進(jìn)行動(dòng)態(tài)的調(diào)整。利用這種線程池動(dòng)態(tài)管理算法,可以很好地適應(yīng)Internet上客戶請(qǐng)求突發(fā)性變化的情況。當(dāng)突然到來大量請(qǐng)求時(shí),根據(jù)算法原理,可以增加適量的線程滿足額外的請(qǐng)求;當(dāng)請(qǐng)求變少以后,會(huì)將線程的數(shù)量減少,從而減輕系統(tǒng)的壓力。經(jīng)過實(shí)驗(yàn)分析比較可以得出,采用線程池動(dòng)態(tài)管理算法之后,有效減小了CPU的負(fù)載壓力,提高了網(wǎng)絡(luò)吞吐量和系統(tǒng)整體性能。但是,線程池的管理還有很多地方可以優(yōu)化,比如調(diào)整線程池尺寸都是以2為步長進(jìn)行調(diào)整的,但是這個(gè)步長是根據(jù)經(jīng)驗(yàn)得出來的,還沒有很好的理論依據(jù)。同時(shí),可以增加更多的統(tǒng)計(jì)信息加入到算法的決策之中,提高算法的精確性。
這里實(shí)現(xiàn)了在多媒體監(jiān)控傳輸系統(tǒng)中P2P和CDN的結(jié)合,引入半同步/半異步的模式,設(shè)計(jì)了系統(tǒng)框架,引入任務(wù)池和線程池等技術(shù),解決了媒體資源服務(wù)器和原始服務(wù)器之間的高效傳輸子系統(tǒng)的網(wǎng)絡(luò)瓶頸,設(shè)計(jì)了有效的線程池動(dòng)態(tài)管理算法。
p2p機(jī)相關(guān)文章:p2p原理
評(píng)論