国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于P2P的流媒體監(jiān)控傳輸系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

2010-09-19 06:40:30
關(guān)鍵詞:線程服務(wù)器動(dòng)態(tài)

蒲 石

(內(nèi)江師范學(xué)院現(xiàn)代教育技術(shù)中心,四川內(nèi)江 641000)

基于P2P的流媒體監(jiān)控傳輸系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

蒲 石

(內(nèi)江師范學(xué)院現(xiàn)代教育技術(shù)中心,四川內(nèi)江 641000)

利用半同步/半異步的模式進(jìn)行框架設(shè)計(jì),結(jié)合任務(wù)池和線程池等技術(shù)設(shè)計(jì)和實(shí)現(xiàn)了基于P2P的CDN流媒體系統(tǒng)中媒體資源服務(wù)器和原始服務(wù)器之間的傳輸子系統(tǒng),提出了基于任務(wù)池閑置信息和系統(tǒng)運(yùn)行參數(shù)統(tǒng)計(jì)信息相結(jié)合的有效動(dòng)態(tài)線程池和任務(wù)池管理算法,根據(jù)各種運(yùn)行參數(shù)信息動(dòng)態(tài)評(píng)估系統(tǒng)當(dāng)前的負(fù)載和壓力情況,對(duì)任務(wù)池和線程池尺寸進(jìn)行動(dòng)態(tài)修改.通過與兩種傳統(tǒng)實(shí)現(xiàn)方式的實(shí)驗(yàn)比較,采用新算法后,顯著降低了CPU的負(fù)載,有效提高了系統(tǒng)效率和網(wǎng)絡(luò)吞吐量.

半同步/半異步;任務(wù)池;線程池

0 引 言

目前,采用流媒體技術(shù)的流媒體實(shí)時(shí)監(jiān)控系統(tǒng)是該應(yīng)用技術(shù)領(lǐng)域持續(xù)關(guān)注的熱點(diǎn)之一.隨著網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展,流媒體內(nèi)容在互聯(lián)網(wǎng)中大量傳播,對(duì)于高質(zhì)量的流媒體分發(fā)服務(wù)體現(xiàn)得越加明顯,因而為大量用戶提供快速,高質(zhì)量的流媒體分發(fā)服務(wù)已成為該領(lǐng)域研究的熱點(diǎn)和難點(diǎn).通常,在流媒體監(jiān)控系統(tǒng)中所要傳輸?shù)臄?shù)據(jù)量相當(dāng)大,其主要包括:控制信息和反饋信息、視頻和音頻、其他如文本信息等.對(duì)于傳統(tǒng)的基于C/S模式或B/S模式的流媒體監(jiān)控系統(tǒng),在監(jiān)控點(diǎn)和監(jiān)控中心之間進(jìn)行這些大量流媒體數(shù)據(jù)傳輸,會(huì)導(dǎo)致服務(wù)器性能下降.基于此,把P2P技術(shù)引入到流媒體監(jiān)控系統(tǒng)設(shè)計(jì)中,可實(shí)現(xiàn)基于 P2P和CDN的監(jiān)控傳輸子系統(tǒng)[1,3,4,6],客戶利用P2P方式從邊緣服務(wù)器得到服務(wù),同時(shí)原始服務(wù)器和邊緣服務(wù)器之間的內(nèi)容發(fā)布也通過P2P方式進(jìn)行,通過這種方式可有效地利用系統(tǒng)中的網(wǎng)絡(luò)帶寬和主機(jī)資源,減輕了原始服務(wù)器和邊緣服務(wù)器的壓力,減少了主干網(wǎng)數(shù)據(jù)流量,降低了運(yùn)營(yíng)商的成本,提高了客戶的服務(wù)質(zhì)量.

1 系統(tǒng)分析

在流媒體監(jiān)控系統(tǒng)中,用戶對(duì)服務(wù)質(zhì)量和媒體資源數(shù)量有著越來越高的要求,系統(tǒng)需要具備存儲(chǔ)大量媒體資源的能力,此時(shí)原始服務(wù)器的存儲(chǔ)空間和計(jì)算壓力成為了系統(tǒng)的瓶頸,為了減輕原始服務(wù)器的存儲(chǔ)壓力,必需將存儲(chǔ)功能轉(zhuǎn)移到專門的媒體資源服務(wù)器上.因此,當(dāng)邊緣服務(wù)器向原始服務(wù)器請(qǐng)求資源時(shí),原始服務(wù)器向媒體資源服務(wù)器請(qǐng)求并緩存在本地,然后通過P2P的方式將這一資源發(fā)往多個(gè)邊緣服務(wù)器,以提高系統(tǒng)的容錯(cuò)性.但采用這種系統(tǒng)結(jié)構(gòu)以后出現(xiàn)的問題是,媒體資源服務(wù)器與原始服務(wù)器間的資源傳輸成為了系統(tǒng)的瓶頸.傳統(tǒng)的解決方法普遍采用FTP的方式,即通過多進(jìn)程和阻塞來實(shí)現(xiàn),這種方式對(duì)網(wǎng)絡(luò)帶寬和CPU的利用率以及并發(fā)度都不盡如人意.本文針對(duì)傳統(tǒng)方式的缺點(diǎn)進(jìn)行了有效改進(jìn),利用半同步/半異步的方式建立系統(tǒng)框架,利用任務(wù)池[7]對(duì)數(shù)據(jù)的讀寫請(qǐng)求進(jìn)行封裝,采用線程池[7,9]對(duì)任務(wù)池中的任務(wù)進(jìn)行高效異步處理.通過對(duì)任務(wù)的閑置情況進(jìn)行統(tǒng)計(jì),并結(jié)合系統(tǒng)的當(dāng)前資源利用情況對(duì)任務(wù)池和線程池進(jìn)行動(dòng)態(tài)管理,降低了CPU的負(fù)載,提高了系統(tǒng)的吞吐量.

2 系統(tǒng)布局及傳輸子系統(tǒng)框架

系統(tǒng)總體布局如圖1所示,邊緣服務(wù)器與若干客戶節(jié)點(diǎn)形成P2P網(wǎng)絡(luò),以提供高效的服務(wù)質(zhì)量,降低服務(wù)器的負(fù)載.當(dāng)客戶在邊緣服務(wù)器上請(qǐng)求資源不命中時(shí),邊緣服務(wù)器會(huì)向原始服務(wù)器請(qǐng)求,原始服務(wù)器會(huì)根據(jù)具體請(qǐng)求要求,將其需要的媒體資源通過高效傳輸子系統(tǒng)緩存在本地,然后利用P2P的方式向多個(gè)邊緣服務(wù)器進(jìn)行內(nèi)容發(fā)布.

圖1 系統(tǒng)總體布局圖

這種方式有效地減輕了原始服務(wù)器在內(nèi)容發(fā)布時(shí)的壓力,理論上它只要將一個(gè)完整的媒體副本發(fā)送出去,其他邊緣服務(wù)器會(huì)根據(jù)P2P的方式得到一個(gè)完整的副本.同理,當(dāng)邊緣服務(wù)器向客戶提供服務(wù)的時(shí)候,理論上它也只需要傳輸一個(gè)副本,多個(gè)客戶端就可以得到完整的服務(wù).

傳輸子系統(tǒng)框架圖如圖2所示.原始服務(wù)器和媒體資源服務(wù)器通常在一個(gè)子網(wǎng)中,網(wǎng)絡(luò)速度比磁盤

圖2 傳輸子系統(tǒng)框架

I/O速度更快,此時(shí),磁盤I/O成了系統(tǒng)的瓶頸.為了緩解網(wǎng)絡(luò)I/O和磁盤I/O的矛盾,在傳輸子系統(tǒng)的設(shè)計(jì)當(dāng)中采用半同步/半異步的方式將網(wǎng)絡(luò)I/O和磁盤I/O分離開來,并通過任務(wù)池的方式進(jìn)行緩沖.上層的主線程處理epoll異步事件和協(xié)議交互,并將接收到的數(shù)據(jù)按照固定大小封裝在任務(wù)里面,然后將任務(wù)放回任務(wù)池,下層線程池負(fù)責(zé)從任務(wù)池中取出任務(wù),進(jìn)行具體的磁盤讀寫操作,操作完成后線程和任務(wù)分別回到線程池和任務(wù)池等待調(diào)度.

3 線程池動(dòng)態(tài)管理算法

為了對(duì)線程池進(jìn)行有效的動(dòng)態(tài)管理,需要采集各種性能參數(shù),經(jīng)過綜合分析之后對(duì)線程池做出調(diào)整.本算法中參考了兩個(gè)最關(guān)鍵的參數(shù),即任務(wù)的平均等待時(shí)間和CPU使用率.通過任務(wù)的平均等待時(shí)間,可以分析出當(dāng)前線程池需要調(diào)整的方向;通過CPU使用率可以得到是否需要增加或者減少線程.

線程池動(dòng)態(tài)管理算法流程圖如圖3所示.圖3中,c(current)表示線程池當(dāng)前平均等待時(shí)間,p(previous)表示線程池上次等待時(shí)間,pp表示上上次等待時(shí)間,ps(pool size)表示線程池大小,pps表示上次線程池大小.

圖3 線程池動(dòng)態(tài)管理算法

該算法中并不是對(duì)等待時(shí)間的絕對(duì)值進(jìn)行比較,而是對(duì)currTime和preTime進(jìn)行比較,如果差異大于1%,線程池可能需要調(diào)整,調(diào)整方向則根據(jù)currTime和preTime的大小關(guān)系來決定.如果 currTime大于 preTime,需要進(jìn)一步比較 preTime和prepreTime的關(guān)系,如果preTime小于prepreTime,并且CPU使用率大于90%,那么減小線程池,減小的步長(zhǎng)(stride)為2.如果preTime大于prepreTime,并且CPU使用率小于80%,則增大線程池,增加的步長(zhǎng)為2.如果currTime小于preTime,并且preTime小于prepreTime,則增大線程池.

簡(jiǎn)而言之,算法通過對(duì)currTime、preTime、prepre-Time三者的關(guān)系進(jìn)行比較,確定線程池是否需要調(diào)整.當(dāng)需要減小線程池時(shí),需要進(jìn)一步判斷CPU的使用率,只有CPU大于一個(gè)閥值的時(shí)才進(jìn)行減小操作,因?yàn)镃PU的負(fù)載太小也是一種資源浪費(fèi);同理,當(dāng)需要增大線程池時(shí),也只能在CPU小于一個(gè)閥值的時(shí)候,才能進(jìn)行增加操作,因?yàn)镃PU的負(fù)載不能過大.

4 實(shí)驗(yàn)分析

因?yàn)槊襟w資源服務(wù)器和原始服務(wù)器多在同一個(gè)子網(wǎng)中,因此實(shí)驗(yàn)的環(huán)境也通過一個(gè)局域網(wǎng)來模擬.在實(shí)驗(yàn)中,服務(wù)器的基本配置是2個(gè)Intel雙核Xeon 3GHz芯片,2 048 K B緩存,4 G內(nèi)存,1 000 Mb網(wǎng)卡.

實(shí)驗(yàn)時(shí)通過傳輸子系統(tǒng)從負(fù)載發(fā)生器下載數(shù)據(jù)來模擬大量數(shù)據(jù)請(qǐng)求,并分別收集以下3種模型的實(shí)驗(yàn)數(shù)據(jù):①傳統(tǒng)多線程阻塞模型.即每個(gè)現(xiàn)存阻塞處理一個(gè)單獨(dú)的請(qǐng)求(在圖4中用A表示,并簡(jiǎn)稱為A模型);②固定線程數(shù)目的線程池.初始線程數(shù)采用CPU個(gè)數(shù)*2+2的公式來確定,即10個(gè)初始線程(在圖4中用B表示,并簡(jiǎn)稱為B模型);③采用線程池動(dòng)態(tài)管理算法的模型,初始線程個(gè)數(shù)也為10個(gè)(在圖4中用C表示,并簡(jiǎn)稱C模型).數(shù)據(jù)均是通過nmon采樣和nmon analyser分析得到的平均值.

圖4 3種模型的CPU占用率計(jì)較

4.1 CPU使用率比較

從圖4中可以看出:在A模型中,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)和釋放操作.

4.2 空閑內(nèi)存比較

圖5 3種模型的空閑內(nèi)存比較

3種模型的空閑內(nèi)存比較如圖5所示.從圖5中可看出:當(dāng)請(qǐng)求的總量相同的情況下,A和B模型占用的內(nèi)存情況很接近;C模型中,任務(wù)池和線程池的大小都是動(dòng)態(tài)伸縮的,提高了系統(tǒng)的處理能力,自然也會(huì)使用更多的內(nèi)存.

4.3 網(wǎng)絡(luò)I/O流量比較

圖6展現(xiàn)了3種模型的網(wǎng)絡(luò)I/O情況.在A模型中,因?yàn)椴捎玫氖亲枞姆绞竭M(jìn)行的,當(dāng)套接口已

圖6 3種模型的網(wǎng)絡(luò)I/O比較

經(jīng)沒有數(shù)據(jù)可讀時(shí),線程會(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模型更好的緩存能力.

5 結(jié) 語(yǔ)

本文設(shè)計(jì)和實(shí)現(xiàn)了基于流媒體監(jiān)控傳輸系統(tǒng),解決了媒體資源服務(wù)器和原始服務(wù)器之間的高效傳輸子系統(tǒng)的網(wǎng)絡(luò)瓶頸.同時(shí),提出了有效的線程池動(dòng)態(tài)管理算法,即根據(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ā)性變化的情況.

此外,經(jīng)過實(shí)驗(yàn)分析比較可以得出,采用線程池動(dòng)態(tài)管理算法之后,有效地減輕了CPU的負(fù)載壓力,提高了網(wǎng)絡(luò)吞吐量和系統(tǒng)整體性能.但是,線程池的管理還有很多地方可以優(yōu)化,比如,線程池尺寸都是以2為步長(zhǎng)進(jìn)行調(diào)整的,但是這個(gè)步長(zhǎng)是根據(jù)經(jīng)驗(yàn)得出來的,還缺乏理論依據(jù).同時(shí),還可以增加更多的統(tǒng)計(jì)信息加入到算法的決策之中,以提高算法的精確性.

[1]Douglas Schmidt,Michael Stal.Hans Rohnert,et al.Pattern-Oriented Software Architechture Volume2 Patterns for Concurrent and Networked Objects[M].Beijing:China Machine Press,2003:261-272.

[2]Molina B,Ruiz V.A closer look at a content delivery network implementation.Electrotechnical Conference[C]//Proceedings of the 12th IEEE Mediterranean.Melecon:IEEE Press,2004:685-688.

[3]Parameswaran M,Susarla A.P2P Networking:An Informationsharing Alternative[J].IEEE Computer,2001,34(7):31-38.

[4]侯孟書,盧顯良,周 旭,等.非結(jié)構(gòu)化P2P系統(tǒng)的路由算法[J].電子科技大學(xué)學(xué)報(bào),2005,47(1):106-109.

[5]夏 利,趙靜波,井惟棟,等.基于對(duì)象池模式的自適應(yīng)線程池技術(shù)[J].東北大學(xué)學(xué)報(bào)(自然科學(xué)版),2006,52(10):32-35.

[6]丘志杰,劉心松,劉 丹,等.內(nèi)核級(jí)并發(fā)通信的研究[J].電子科技大學(xué)學(xué)報(bào),2006,48(4):94-97.

[7]馮 瑋,劉心松.基于線程池技術(shù)的文件傳輸模型的改進(jìn)[J].微計(jì)算機(jī)信息,2006,23(21):79-81.

[8]Ling Y ibei,TracyMullen,Lin Xiaola.Analysis of Optimal Thread Pool Size[J].Operating Systems Review,2000,34(2):42-55.

[9]Xu Dongping.Performance Study and Dynamic Optimization-Design for Thread Pod Systems[DB/OL].[2004-12-01].http://www.scl.ameslab.gov/Publications/Brett/CCCTFinal-color.pdf.

Design and Realization of Streaming Media’s Supervision Transmitting System Based on P2P

PU Shi

(Center of Modern Education Technology,Neijiang Normal University,Neijinag 641000,China)

Half-Sync or Half-Async models were used to design the framework and a transmission sub-system was designed and realized based on media resources server and original sever in CDN streaming media of P2P with help of technologies such as task pool and thread pool.An effective dynamic thread pool management algorithm based on thread pool idle information and system run-time parameters statistics was proposed which dynamically adjusted the size of the task pool and thread pool in a heuristic way with the system load information and other run-time parameters.Compared with the experiments on two traditional realization ways,the new algorithm can reduce load of CPU remarkably and improve the network efficiency and throughput.

Half-Sync/Half-Async model;task pool;thread pool

TP302.8

:A

1004-5422(2010)02-0146-04

2010-03-02.

蒲 石(1957—),男,實(shí)驗(yàn)師,從事計(jì)算機(jī)網(wǎng)絡(luò)與多媒體操作系統(tǒng)研究.

猜你喜歡
線程服務(wù)器動(dòng)態(tài)
國(guó)內(nèi)動(dòng)態(tài)
國(guó)內(nèi)動(dòng)態(tài)
國(guó)內(nèi)動(dòng)態(tài)
通信控制服務(wù)器(CCS)維護(hù)終端的設(shè)計(jì)與實(shí)現(xiàn)
動(dòng)態(tài)
淺談linux多線程協(xié)作
得形忘意的服務(wù)器標(biāo)準(zhǔn)
計(jì)算機(jī)網(wǎng)絡(luò)安全服務(wù)器入侵與防御
Linux線程實(shí)現(xiàn)技術(shù)研究
么移動(dòng)中間件線程池并發(fā)機(jī)制優(yōu)化改進(jìn)
含山县| 烟台市| 阳西县| 丰宁| 嘉善县| 曲沃县| 温泉县| 留坝县| 鄢陵县| 米林县| 福清市| 皮山县| 上虞市| 津市市| 屯昌县| 新巴尔虎左旗| 荃湾区| 长阳| 临潭县| 阿克陶县| 凤山市| 天津市| 多伦县| 中宁县| 石阡县| 威海市| 垣曲县| 岐山县| 息烽县| 福建省| 绥中县| 仙桃市| 磴口县| 刚察县| 集安市| 丽水市| 太康县| 巴中市| 广水市| 武城县| 乌海市|