基于P2P和CDN的監(jiān)控傳輸子系統(tǒng)的設(shè)計(jì)
當(dāng)客戶在邊緣服務(wù)器上請(qǐng)求資源不命中時(shí),邊緣服務(wù)器會(huì)向原始服務(wù)器請(qǐng)求,原始服務(wù)器會(huì)根據(jù)具體請(qǐng)求要求,將需要的媒體資源通過(guò)該文實(shí)現(xiàn)的高效傳輸子系統(tǒng)存儲(chǔ)在本地,然后利用P2P的方式向多個(gè)邊緣服務(wù)器發(fā)布內(nèi)容。
通過(guò)這種方式有效減輕了原始服務(wù)器在內(nèi)容發(fā)布時(shí)的壓力。理論上它只要將一個(gè)完整的媒體副本發(fā)送出去,其他邊緣服務(wù)器會(huì)根據(jù)P2P的方式得到一個(gè)完整的副本。同理,當(dāng)邊緣服務(wù)器向客戶提供服務(wù)時(shí),理論上它也只需要傳輸一個(gè)副本,多個(gè)客戶端就可以得到完整的服務(wù)。原始服務(wù)器和媒體資源服務(wù)器通常是在一個(gè)子網(wǎng)中,網(wǎng)絡(luò)速度比磁盤(pán)I/O速度更快。此時(shí),磁盤(pán)I/O成了系統(tǒng)的瓶頸。為了緩解網(wǎng)絡(luò)I/O和磁盤(pán)1/O的矛盾,在傳輸子系統(tǒng)的設(shè)計(jì)當(dāng)中采用半同步/半異步的方式將網(wǎng)絡(luò)I/O與磁盤(pán)I/O分離開(kāi),并通過(guò)任務(wù)池的方式進(jìn)行緩沖。
上層的主線程處理epoll異步事件和協(xié)議交互,框架將接收到的數(shù)據(jù)按照固定大小封裝在任務(wù)里面,然后將任務(wù)放回任務(wù)池,下層線程池負(fù)責(zé)從任務(wù)池中取出任務(wù),進(jìn)行具體的磁盤(pán)讀寫(xiě)操作,操作完成后線程和任務(wù)分別回到線程池和任務(wù)池等待調(diào)度。
3 算法實(shí)現(xiàn)
為了對(duì)線程池進(jìn)行有效的動(dòng)態(tài)管理,需要采集各種性能參數(shù),經(jīng)過(guò)綜合分析之后,對(duì)線程池做出調(diào)整。該算法中參考了兩個(gè)最關(guān)鍵的參數(shù),即任務(wù)的平均等待時(shí)間和CPU使用率。通過(guò)任務(wù)的平均等待時(shí)間,可以分析得到當(dāng)前線程池需要調(diào)整的方向。通過(guò)CPU使用率可以得到是否需要增加或者減少線程。
圖2中c(current)表示線程池當(dāng)前平均等待時(shí)間;p(previous)表示線程池上次等待時(shí)間;pp表示上上次等待時(shí)間;ps(pool size)表示線程池大?。籶ps表示上次線程池大小。該算法中并不是對(duì)等待時(shí)間的絕對(duì)值進(jìn)行比較,而是對(duì)currTime和preTime進(jìn)行比較,如果差異大于1%,線程池可能需要調(diào)整,調(diào)整方向需要根據(jù)currTime和preTime的大小關(guān)系來(lái)決定。如果currTime大于preTime,需要進(jìn)一步比較pre-Time和prepreTime的關(guān)系;如果preTime小于prepreTime,并且CPU使用率大于90%,那么減小線程池。減小的步長(zhǎng)(stride)為2。如果preTime大于prepreTime,并且CPU使用率小于80%,則增大線程池,增加的步長(zhǎng)為2。如果currTime小于preTime,并且preTime小于prepreTime,則增大線程池。
簡(jiǎn)而言之,算法通過(guò)對(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ù)載不能過(guò)大。
4 實(shí)驗(yàn)分析
因?yàn)槊襟w資源服務(wù)器和原始服務(wù)器多在同一個(gè)子網(wǎng)中,因此實(shí)驗(yàn)的環(huán)境也通過(guò)一個(gè)局域網(wǎng)模擬,服務(wù)器的基本配置是:兩個(gè)Intel雙核Xeon 3 GHz芯片、2 048 KB緩存、4 GB內(nèi)存、1 000 Mb/s網(wǎng)卡。
4.1 三種模型的實(shí)驗(yàn)數(shù)據(jù)
p2p機(jī)相關(guān)文章:p2p原理
評(píng)論