王大成, ,,
(中南大學(xué) 信息科學(xué)與工程學(xué)院,長(zhǎng)沙 410000)
透明計(jì)算是一種用戶無(wú)需感知計(jì)算機(jī)操作系統(tǒng)、支撐工具以及應(yīng)用程序的所在,并能根據(jù)自己的需求從所使用的各種設(shè)備中找到相關(guān)計(jì)算服務(wù),而這些服務(wù)又是位于分布式網(wǎng)絡(luò)的服務(wù)器中的計(jì)算模式[1]。為實(shí)現(xiàn)用戶按需索取服務(wù)的目標(biāo),透明計(jì)算將計(jì)算和存儲(chǔ)分離[2]。服務(wù)器存儲(chǔ)操作系統(tǒng)、應(yīng)用程序以及用戶數(shù)據(jù)等軟件資源,終端接近裸機(jī),只存儲(chǔ)最底層的BIOS和極少部分協(xié)議及管理程序[3]。當(dāng)用戶需要服務(wù)時(shí),透明計(jì)算系統(tǒng)將請(qǐng)求發(fā)送到服務(wù)器端,所需的操作系統(tǒng)、應(yīng)用程序以分塊或流的形式通過(guò)網(wǎng)絡(luò)加載到終端上執(zhí)行[4]。因此,傳輸過(guò)程中的網(wǎng)絡(luò)傳輸帶寬是影響系統(tǒng)性能的重要因素[5-7]。
為降低透明計(jì)算系統(tǒng)TCOS對(duì)網(wǎng)絡(luò)傳輸帶寬的依賴,同時(shí)提升系統(tǒng)性能,本文從緩存角度出發(fā),提出一種雙緩存協(xié)作策略,并通過(guò)實(shí)驗(yàn)對(duì)其效果進(jìn)行驗(yàn)證。
為提高透明計(jì)算系統(tǒng)的可用性以及性能,研究者從傳輸?shù)臄?shù)據(jù)量、傳輸協(xié)議、緩存策略等方面對(duì)透明計(jì)算系統(tǒng)進(jìn)行了優(yōu)化。
文獻(xiàn)[8]從減少傳輸數(shù)據(jù)量角度出發(fā),在底層緩存多個(gè)用戶請(qǐng)求,分類合并成一個(gè)數(shù)據(jù)包傳輸給服務(wù)器端進(jìn)行處理,服務(wù)器端也將傳輸?shù)臄?shù)據(jù)進(jìn)行合并壓縮傳輸。雖然這種方法減少了系統(tǒng)傳輸?shù)臄?shù)據(jù)量,但由于終端和服務(wù)器端需要進(jìn)行合并和解析的處理,會(huì)造成響應(yīng)時(shí)間增加。
文獻(xiàn)[9]致力于研究如何提高透明計(jì)算系統(tǒng)的性能,針對(duì)NCBP協(xié)議[10]在加載混雜內(nèi)核或微內(nèi)核結(jié)構(gòu)的Windows系統(tǒng)前需要下載對(duì)應(yīng)的加載器導(dǎo)致效率低的問(wèn)題,提出一種可擴(kuò)展啟動(dòng)協(xié)議ENCBP,采用基于固件啟動(dòng)代理的方法來(lái)引導(dǎo)啟動(dòng)過(guò)程。雖然該方法可以減少加載Windows系統(tǒng)的時(shí)間,增加系統(tǒng)的安全性,但是需要定制額外的芯片來(lái)支持。大量研究從緩存策略出發(fā),通過(guò)服務(wù)器端緩存或客戶端緩存的方法來(lái)減少數(shù)據(jù)傳輸量。
文獻(xiàn)[11]設(shè)置了服務(wù)器端緩存,將服務(wù)器端上常被訪問(wèn)的數(shù)據(jù)塊緩存在內(nèi)存中,在緩存數(shù)據(jù)進(jìn)行替換時(shí),采用新的置換算法LRU-AFS,設(shè)定了訪問(wèn)頻率閾值,在替換緩存塊時(shí),如果其頻率計(jì)數(shù)低于預(yù)設(shè)閾值,直接替換,否則重新選擇替換對(duì)象。
文獻(xiàn)[12]提出的TC-CRM替換算法基于客戶端請(qǐng)求的數(shù)據(jù)特征,將訪問(wèn)頻率、最后訪問(wèn)時(shí)間及訪問(wèn)的數(shù)據(jù)塊長(zhǎng)度作為替換的依據(jù),優(yōu)先替換訪問(wèn)頻率低、最近被訪問(wèn)的及長(zhǎng)度較大的數(shù)據(jù)塊,保證了經(jīng)常被訪問(wèn)的數(shù)據(jù)塊駐留在服務(wù)器端緩存中,但是服務(wù)器傳輸?shù)浇K端的數(shù)據(jù)量并沒(méi)有減少,傳輸時(shí)間也沒(méi)有減少,仍受帶寬影響。
文獻(xiàn)[13]通過(guò)客戶端緩存來(lái)減少傳輸時(shí)間及傳輸?shù)臄?shù)據(jù)量,在緩存中主要存儲(chǔ)了操作系統(tǒng)內(nèi)核代碼,減少了內(nèi)核加載使用的時(shí)間,加快了系統(tǒng)啟動(dòng)速度,但是并未考慮將常用的應(yīng)用軟件數(shù)據(jù)以及用戶私有數(shù)據(jù)放入緩存中,因此,系統(tǒng)啟動(dòng)后應(yīng)用服務(wù)的速度仍未得到提高。
本文提出一種將本地緩存與P2P緩存[14]相結(jié)合的緩存協(xié)作策略(TC-CCS),并以移動(dòng)透明計(jì)算系統(tǒng)TCOS[12]為實(shí)例進(jìn)行優(yōu)化研究。TCOS系統(tǒng)面向的是移動(dòng)終端,且存儲(chǔ)容量有限。通過(guò)在終端上開(kāi)辟適當(dāng)大小的緩存空間,緩存常用的數(shù)據(jù)來(lái)加快請(qǐng)求的處理速度,且多個(gè)終端請(qǐng)求的數(shù)據(jù)相同,可以相互共享。
TCOS系統(tǒng)是以透明計(jì)算為理念設(shè)計(jì)實(shí)現(xiàn)的面向移動(dòng)終端的分布式系統(tǒng),其結(jié)構(gòu)如圖1所示。
圖1 TCOS系統(tǒng)結(jié)構(gòu)
TCOS系統(tǒng)按照功能可劃分為3個(gè)部分:終端設(shè)備,主服務(wù)器,存儲(chǔ)服務(wù)器。
1)終端設(shè)備上內(nèi)置了相應(yīng)的管理程序,主要負(fù)責(zé)網(wǎng)絡(luò)配置、提供用戶登錄使用的交互界面、讓用戶可選擇操作系統(tǒng)使用等。虛擬磁盤(pán)驅(qū)動(dòng)是終端上用來(lái)處理數(shù)據(jù)請(qǐng)求的。與一般的磁盤(pán)驅(qū)動(dòng)不同,虛擬磁盤(pán)驅(qū)動(dòng)讀寫(xiě)的是服務(wù)器端的鏡像文件。通過(guò)將本地I/O請(qǐng)求封裝成特定的網(wǎng)絡(luò)數(shù)據(jù)包發(fā)送到服務(wù)器端,服務(wù)器端將處理的結(jié)果返回。
2)主服務(wù)器上部署了Web管理平臺(tái),負(fù)責(zé)認(rèn)證用戶身份、管理用戶屬性、鏡像數(shù)據(jù)等,并對(duì)系統(tǒng)內(nèi)的終端設(shè)備以及存儲(chǔ)服務(wù)器進(jìn)行監(jiān)控。
3)存儲(chǔ)服務(wù)器主要用于存放各類數(shù)據(jù),包含操作系統(tǒng)鏡像、應(yīng)用軟件鏡像和用戶數(shù)據(jù)鏡像,分別存放系統(tǒng)數(shù)據(jù)、應(yīng)用軟件數(shù)據(jù)和用戶私有數(shù)據(jù)。其中,操作系統(tǒng)鏡像和應(yīng)用軟件鏡像可以被用戶共享,用戶數(shù)據(jù)鏡像為每個(gè)用戶私有。
當(dāng)用戶身份認(rèn)證合法后,在終端上選擇某個(gè)操作系統(tǒng)進(jìn)行使用時(shí),數(shù)據(jù)的訪問(wèn)流程如圖2所示。具體步驟如下:1)終端與存儲(chǔ)服務(wù)器建立連接;2)存儲(chǔ)服務(wù)器端根據(jù)用戶選擇的系統(tǒng)種類,打開(kāi)對(duì)應(yīng)的鏡像文件;3)虛擬磁盤(pán)驅(qū)動(dòng)接收操作系統(tǒng)運(yùn)行時(shí)產(chǎn)生的I/O請(qǐng)求發(fā)送到存儲(chǔ)服務(wù)器端進(jìn)行處理;4)處理時(shí)按照讀、寫(xiě)請(qǐng)求分類處理,將讀取的數(shù)據(jù)或?qū)懭胧欠癯晒Ψ祷亟o虛擬磁盤(pán)驅(qū)動(dòng)。至此,就完成了一次數(shù)據(jù)訪問(wèn)。
圖2 TCOS數(shù)據(jù)訪問(wèn)流程
從TCOS的架構(gòu)可以看出,若所有終端在同一局域網(wǎng)內(nèi),和服務(wù)器端的數(shù)據(jù)傳輸交互都是通過(guò)一個(gè)出口(路由器或交換機(jī))進(jìn)行。當(dāng)傳輸?shù)臄?shù)據(jù)量較大時(shí),出口帶寬會(huì)形成瓶頸,限制了數(shù)據(jù)傳輸?shù)男?會(huì)影響用戶使用。
本文提出的TC-CCS策略通過(guò)在終端上設(shè)置緩存策略來(lái)解決帶寬帶來(lái)的系統(tǒng)瓶頸問(wèn)題。首先對(duì)終端的數(shù)據(jù)訪問(wèn)特點(diǎn)進(jìn)行分析。在使用過(guò)程中,終端的數(shù)據(jù)訪問(wèn)存在3個(gè)特點(diǎn):1)數(shù)據(jù)類型不同,訪問(wèn)的數(shù)據(jù)有操作系統(tǒng)數(shù)據(jù)、應(yīng)用軟件數(shù)據(jù)和用戶私有數(shù)據(jù);2)訪問(wèn)的數(shù)據(jù)量的峰值出現(xiàn)在2個(gè)階段,第一階段為啟動(dòng)操作系統(tǒng),訪問(wèn)的數(shù)據(jù)量根據(jù)系統(tǒng)種類不同,其范圍限制在300 MB~1 000 MB內(nèi),第二階段是使用“笨重”的應(yīng)用軟件,有些軟件啟動(dòng)時(shí)需要讀取的數(shù)據(jù)量也能達(dá)到上百兆之多;3)存在某些數(shù)據(jù),如操作系統(tǒng)或應(yīng)用軟件數(shù)據(jù),被不同終端多次訪問(wèn)。
針對(duì)數(shù)據(jù)訪問(wèn)的特點(diǎn),本文從以下方面對(duì)TC-CCS策略進(jìn)行設(shè)計(jì)與實(shí)現(xiàn):
1)設(shè)置本地緩存,用來(lái)緩存用戶常用的個(gè)人數(shù)據(jù),如文檔等,這部分?jǐn)?shù)據(jù)是私有的,數(shù)據(jù)量比較小,從用戶數(shù)據(jù)鏡像中讀取。
2)設(shè)置P2P緩存,并將其劃分成2個(gè)部分,分別用來(lái)緩存操作系統(tǒng)啟動(dòng)數(shù)據(jù)以及應(yīng)用軟件數(shù)據(jù),從操作系統(tǒng)鏡像和應(yīng)用軟件鏡像中讀取,用來(lái)加快啟動(dòng)速度。這兩部分?jǐn)?shù)據(jù)是共享的,且數(shù)據(jù)量比較大,考慮到局域網(wǎng)帶寬一般大于廣域網(wǎng)帶寬,從其他終端上讀取的速度比從服務(wù)器端讀取更快,因此,本文在局域網(wǎng)中構(gòu)建P2P網(wǎng)絡(luò)。
3)緩存協(xié)作。在終端上存在本地緩存和P2P緩存2種。不同終端上的P2P緩存可以共享,相互協(xié)作來(lái)完成數(shù)據(jù)請(qǐng)求處理。
4)替換策略。P2P緩存中的系統(tǒng)啟動(dòng)數(shù)據(jù)能加速系統(tǒng)啟動(dòng)過(guò)程,對(duì)這部分?jǐn)?shù)據(jù)標(biāo)記不進(jìn)行替換。
TC-CCS策略示意圖如圖3所示。
圖3 TC-CCS策略示意圖
TCOS系統(tǒng)中數(shù)據(jù)的基本處理和存儲(chǔ)單位是“數(shù)據(jù)塊”,且大小為4 KB,以偏移量為標(biāo)識(shí)。因此,緩存塊的大小同樣設(shè)置成4 KB,在進(jìn)行讀取和寫(xiě)入時(shí)不需要進(jìn)行額外處理。在緩存容量較大時(shí),塊的數(shù)目可能非常多,且由于其偏移量并不連續(xù),存儲(chǔ)時(shí)塊與塊之間存在空白區(qū)域,可能會(huì)為較少的緩存塊分配很大的存儲(chǔ)空間,再判斷緩存是否命中,查找代價(jià)大。因此,本文針對(duì)緩存文件的存儲(chǔ)設(shè)計(jì)了Cache-Storage結(jié)構(gòu)。
如圖4所示,Cache-Storage將緩存文件分成3個(gè)部分存儲(chǔ)。
Header區(qū)存放的是文件的全局信息,包含文件類型、大小、Map區(qū)起始地址、Data區(qū)起始地址、Map區(qū)的塊大小、Data區(qū)的塊大小等。
Map區(qū)是為了加快數(shù)據(jù)塊的查找。其中,index表示數(shù)據(jù)塊的偏移量,data_offset表示在Data區(qū)的存儲(chǔ)地址。初始化文件時(shí),所有塊對(duì)應(yīng)的偏移量初始值均為FFFFFFFF。當(dāng)某一數(shù)據(jù)塊尚未存儲(chǔ)時(shí),其對(duì)應(yīng)的偏移量均為初始值。
Data區(qū)是用來(lái)存儲(chǔ)數(shù)據(jù)塊內(nèi)容的,塊與塊之間是連續(xù)存儲(chǔ)的。每次有新的數(shù)據(jù)塊寫(xiě)入,直接存儲(chǔ)在Data區(qū)尾部,并將其data_offset值寫(xiě)入到Map區(qū)對(duì)應(yīng)的index位置上。
當(dāng)需要讀取數(shù)據(jù)塊時(shí),首先查詢Map區(qū)。如果數(shù)據(jù)塊對(duì)應(yīng)的data_offset為初始值,表示此數(shù)據(jù)塊不存在,讀取失敗,如果不為初始值則按照data_offset直接在Data區(qū)讀取即可。當(dāng)寫(xiě)入數(shù)據(jù)塊時(shí),如果data_offset值不為初始值,表示的是修改操作,直接進(jìn)行覆蓋寫(xiě)。如果為初始值,則是添加操作,將Data區(qū)末尾的地址作為數(shù)據(jù)塊對(duì)應(yīng)的data_offset存儲(chǔ)在Map區(qū)的對(duì)應(yīng)位置,然后再寫(xiě)入數(shù)據(jù)。
P2P緩存的目的是增加局域網(wǎng)內(nèi)的數(shù)據(jù)訪問(wèn),減少對(duì)服務(wù)器端的訪問(wèn),降低對(duì)帶寬的壓力。在TCOS系統(tǒng)中,P2P緩存的是系統(tǒng)啟動(dòng)數(shù)據(jù)和應(yīng)用軟件啟動(dòng)數(shù)據(jù),能加快操作系統(tǒng)和應(yīng)用軟件的啟動(dòng)。這兩部分?jǐn)?shù)據(jù)是被多數(shù)終端感興趣的,而且是可被共享的。用戶對(duì)系統(tǒng)啟動(dòng)流程的修改,被當(dāng)做是私有數(shù)據(jù),不會(huì)被共享。
P2P緩存采用結(jié)構(gòu)化的組織方式,使用分布式哈希表DHT[15]的思想,通過(guò)對(duì)數(shù)據(jù)進(jìn)行分割,在每臺(tái)終端上只存儲(chǔ)特定的數(shù)據(jù),當(dāng)用戶需要讀取時(shí),采用Chord算法[16]進(jìn)行查找,而不是使用廣播或者非結(jié)構(gòu)化中的泛洪式查找算法。數(shù)據(jù)塊定位過(guò)程如圖5所示,具體步驟如下:
1)將終端的IP地址進(jìn)行哈希得到一個(gè)節(jié)點(diǎn)值,按照節(jié)點(diǎn)值從小到達(dá)構(gòu)成一個(gè)Chord環(huán)。
2)根據(jù)節(jié)點(diǎn)值,獲取此節(jié)點(diǎn)和下一節(jié)點(diǎn)之間的距離,以此來(lái)劃分每個(gè)節(jié)點(diǎn)上存儲(chǔ)的數(shù)據(jù)塊。
3)對(duì)數(shù)據(jù)塊的偏移量進(jìn)行哈希,按照哈希值的大小來(lái)決定存儲(chǔ)此塊的節(jié)點(diǎn)。在判斷數(shù)據(jù)塊能否被寫(xiě)到P2P緩存中,也遵循此原則。如果終端讀取的數(shù)據(jù)塊的哈希值經(jīng)過(guò)判斷不能存儲(chǔ)在本地時(shí),就將其舍棄。
4)為每個(gè)節(jié)點(diǎn)建立路由表,它根據(jù)計(jì)算數(shù)據(jù)塊哈希值指數(shù)級(jí)增長(zhǎng)時(shí)對(duì)應(yīng)的各個(gè)結(jié)點(diǎn),形成表中的信息。在查找某個(gè)數(shù)據(jù)塊時(shí),進(jìn)行比對(duì),直接定位到對(duì)應(yīng)的節(jié)點(diǎn)上,提高了查找的速率。
5)在查找到數(shù)據(jù)塊的位置后,與目標(biāo)節(jié)點(diǎn)建立連接,發(fā)送請(qǐng)求進(jìn)行讀取。
圖5 數(shù)據(jù)塊定位示意圖
在使用了DHT后,緩存數(shù)據(jù)的部署如下:以Centos啟動(dòng)過(guò)程為例,大約需要讀取400 MB的數(shù)據(jù)量,終端有5臺(tái),達(dá)到的的效果是在各個(gè)終端上的P2P緩存中包含約80 MB互不相同的系統(tǒng)啟動(dòng)數(shù)據(jù)。當(dāng)系統(tǒng)在啟動(dòng)時(shí),需要的數(shù)據(jù)基本上可以全部從P2P緩存中讀取到。
P2P緩存中包含系統(tǒng)啟動(dòng)數(shù)據(jù)和應(yīng)用軟件數(shù)據(jù)。系統(tǒng)啟動(dòng)數(shù)據(jù)為每次啟動(dòng)加速,這部分?jǐn)?shù)據(jù)不進(jìn)行替換,替換的是應(yīng)用軟件數(shù)據(jù)。
本文提出TC-Replace替換算法,考慮到P2P緩存中的應(yīng)用軟件數(shù)據(jù)可能經(jīng)常被本地訪問(wèn)或其他終端訪問(wèn),因此,替換時(shí)兼顧本地訪問(wèn)和其他終端訪問(wèn)的情況。該算法設(shè)計(jì)思想如下:首先設(shè)置了3個(gè)主隊(duì)列,分別是LRU[17]、LFU1和LFU2隊(duì)列。LRU中的數(shù)據(jù)至少被訪問(wèn)2次,才能被移入LFU隊(duì)列。其中LFU1用來(lái)存放本地系統(tǒng)常訪問(wèn)的數(shù)據(jù),LFU2用來(lái)存放其他終端經(jīng)常訪問(wèn)的數(shù)據(jù)。為了區(qū)分?jǐn)?shù)據(jù)塊的移動(dòng)方向,本文定義緩存塊的屬性包含{localCount,shareCount},其中:localCount代表被本地系統(tǒng)訪問(wèn)的次數(shù),其最小值為1;shareCount代表被其他終端訪問(wèn)的次數(shù),其最小值為0。根據(jù)localCount和shareCount才能區(qū)分緩存塊到底是移動(dòng)到LFU1還是LFU2中。LFU1隊(duì)列按照l(shuí)ocalCount排序,LFU2隊(duì)列按照shareCount排序。主隊(duì)列替換出去的緩存塊,先不完全淘汰,防止出現(xiàn)“幽靈命中”情況。通過(guò)設(shè)置2個(gè)副隊(duì)列,分別存放被LRU和LFU替換算法淘汰的緩存塊。從副隊(duì)列淘汰出去的緩存塊才是被完全淘汰。圖6表示的是一次緩存替換的過(guò)程,其中標(biāo)號(hào)表示如下:
①表示新的數(shù)據(jù)加入,添加到LRU隊(duì)列;
②表示當(dāng)LRU隊(duì)列中某一緩存塊被本地系統(tǒng)訪問(wèn),則添加到LFU1隊(duì)列;
③表示當(dāng)LRU隊(duì)列中某一緩存塊被其他終端訪問(wèn),則添加到LFU2隊(duì)列;
④表示當(dāng)LFU1和LFU2隊(duì)列中緩存塊被本地系統(tǒng)或其他終端再次訪問(wèn),根據(jù)訪問(wèn)次數(shù)調(diào)整緩存塊在隊(duì)列中的位置;
⑤表示當(dāng)LFU1淘汰緩存塊時(shí),根據(jù)shareCount的值判斷能否進(jìn)入LFU2中,如果不能則直接淘汰到副隊(duì)列2中。LFU2淘汰數(shù)據(jù)規(guī)則同上。這是為了保證被本地終端和其他終端感興趣的緩存塊盡可能的滯留在緩存中;
⑥表示LRU隊(duì)列淘汰數(shù)據(jù)到副隊(duì)列1中,LFU1和LFU2隊(duì)列淘汰數(shù)據(jù)到副隊(duì)列2中;
⑦表示在副隊(duì)列中的緩存塊可能被再次命中。副隊(duì)列1中的緩存塊被再次訪問(wèn)后,直接添加到LRU中。副隊(duì)列2中的緩存塊被再次訪問(wèn)后,區(qū)分是本地系統(tǒng)還是其他終端請(qǐng)求,然后添加到相應(yīng)的LFU隊(duì)列;
⑧表示副隊(duì)列淘汰數(shù)據(jù),這次是完全淘汰。
圖6 緩存替換過(guò)程
本節(jié)針對(duì)TC-CCS策略中緩存性能進(jìn)行測(cè)試及分析。測(cè)試環(huán)境使用移動(dòng)透明計(jì)算系統(tǒng)TCOS,設(shè)置1臺(tái)服務(wù)器、4臺(tái)相同配置的終端。終端與服務(wù)器經(jīng)2個(gè)路由器相連。服務(wù)器和終端配置如下:
1)服務(wù)器采用Dell R720,處理器為Intel(R) Xeon(R) CPU E5-2609 v2@ 2.50 GHz,16 GB內(nèi)存,硬盤(pán)容量6 TB,搭載CentOS release 6.5操作系統(tǒng)。
2)終端設(shè)備為普瑞吉開(kāi)發(fā)板,處理器為Intel(R)Bay Trail D/I/M SOC,2 GB內(nèi)存,存儲(chǔ)容量8 GB。
TC-CCS策略是為了解決局域網(wǎng)出口帶寬受限對(duì)系統(tǒng)性能造成影響的問(wèn)題。在測(cè)試時(shí),帶寬速率不容易限制,通過(guò)限制服務(wù)器的網(wǎng)卡上行和下行速度來(lái)模擬帶寬受限的情況。設(shè)置緩存大小為200 MB對(duì)其性能進(jìn)行測(cè)試。
為測(cè)試TC-CCS策略對(duì)軟件啟動(dòng)時(shí)間的影響,本文采用Eclipse作為啟動(dòng)軟件,從服務(wù)器端讀取100 MB的數(shù)據(jù),設(shè)置服務(wù)器端網(wǎng)卡上行速度分別為1 MB/s、2 MB/s、3 MB/s,測(cè)試了分別啟動(dòng)1臺(tái)終端、2臺(tái)終端和3臺(tái)終端時(shí)使用TC-CCS策略和不使用TC-CCS策略的軟件啟動(dòng)時(shí)間變化,測(cè)試結(jié)果如圖7所示。
圖7 啟動(dòng)軟件時(shí)長(zhǎng)對(duì)比
由圖7可知,未采用TC-CCS策略時(shí),隨著終端啟動(dòng)臺(tái)數(shù)的增加,Eclipse軟件啟動(dòng)時(shí)間增長(zhǎng),這是因?yàn)閱?dòng)臺(tái)數(shù)越多,各個(gè)終端都需要從服務(wù)器上獲得數(shù)據(jù)量,數(shù)據(jù)量成倍增長(zhǎng)。而隨著帶寬速率的增加,軟件啟動(dòng)時(shí)間減少,這是因?yàn)閹捤俾试黾?所傳輸?shù)臄?shù)據(jù)量增加,所以啟動(dòng)時(shí)間縮短。當(dāng)帶寬速率越低,啟動(dòng)時(shí)間受帶寬影響越明顯。在使用TC-CCS策略后,若終端發(fā)現(xiàn)數(shù)據(jù)缺失,將首先從局域網(wǎng)其他終端取數(shù)據(jù),只有局域網(wǎng)其他終端都不存在所需數(shù)據(jù)后,才向服務(wù)器端請(qǐng)求,因此,采用TC-CCS策略后,雖然隨著啟動(dòng)臺(tái)數(shù)的增加,啟動(dòng)時(shí)間有所增長(zhǎng),但帶寬速率的影響基本可忽略;而且當(dāng)帶寬速率為1 MB/s且啟動(dòng)3臺(tái)終端的情況下,使用TC-CCS策略的啟動(dòng)時(shí)間比未使用TC-CCS策略縮短了約68%。
本文同時(shí)測(cè)試了TC-CCS策略對(duì)操作系統(tǒng)啟動(dòng)時(shí)的影響,采用CentOS系統(tǒng)進(jìn)行測(cè)試。系統(tǒng)啟動(dòng)時(shí),服務(wù)器端沒(méi)有限制網(wǎng)卡速度,測(cè)試了分別啟動(dòng)1臺(tái)、2臺(tái)、3臺(tái)終端時(shí)使用TC-CCS策略和不使用TC-CCS策略的系統(tǒng)啟動(dòng)時(shí)間變化,測(cè)試結(jié)果如圖8所示。
圖8 CentOS系統(tǒng)啟動(dòng)時(shí)間對(duì)比
由圖8可知,隨著終端數(shù)目的增加,系統(tǒng)啟動(dòng)時(shí)長(zhǎng)也在增加,這是因?yàn)閱?dòng)過(guò)程中傳輸?shù)臄?shù)據(jù)量是隨著終端數(shù)目線性增長(zhǎng)的,所以時(shí)長(zhǎng)也在增加。當(dāng)不使用TC-CCS策略時(shí),系統(tǒng)啟動(dòng)時(shí)長(zhǎng)增加得更快,這是因?yàn)橛捎趩?dòng)所需的數(shù)據(jù)量較大,此時(shí)網(wǎng)絡(luò)會(huì)產(chǎn)生擁塞。而在使用TC-CCS策略后,系統(tǒng)啟動(dòng)時(shí)也是首先從局域網(wǎng)其他終端取數(shù)據(jù),只有局域網(wǎng)其他終端都不存在所需數(shù)據(jù)后,才向服務(wù)器端請(qǐng)求。因此,系統(tǒng)啟動(dòng)時(shí)間增加的較慢。對(duì)比3臺(tái)終端的啟動(dòng)時(shí)間可知,使用TC-CCS策略后,啟動(dòng)速度提高了約40%。
最后本文測(cè)試了緩存替換算法TC-Replace的命中率,分別對(duì)比不同緩存大小情況下LRU、LFU、LRU-AFS、TC-CRM和TC-Replace算法請(qǐng)求100 MB文件的命中率,測(cè)試10次取平均值,測(cè)試結(jié)果如圖9所示。
圖9 緩存替換算法命中率對(duì)比
由圖9可知,隨著緩存容量的增加,5種算法的命中率都在增加。當(dāng)緩存大小超過(guò)30 MB時(shí),TC-Replace算法的命中率高于其他算法的命中率,這是因?yàn)門(mén)C-Replace替換算法考慮了透明計(jì)算系統(tǒng)中數(shù)據(jù)訪問(wèn)的特性,結(jié)合使用了多級(jí)LRU和LFU策略的緩存隊(duì)列。而TC-CRM替換算法較LRU和LFU策略的命中率低,這是因?yàn)槠淇紤]更多的是多個(gè)終端數(shù)據(jù)數(shù)據(jù)請(qǐng)求的共性:請(qǐng)求的短數(shù)據(jù)包較多,所以在替換時(shí)保留短數(shù)據(jù)包,而測(cè)試時(shí)針對(duì)單個(gè)數(shù)據(jù)塊來(lái)考慮,不存在短數(shù)據(jù)包和長(zhǎng)數(shù)據(jù)包的區(qū)別。而LRU-AFS設(shè)置兩級(jí)緩存隊(duì)列,命中率略高于除TC-Replace之外的3種替換算法,但是因?yàn)?個(gè)隊(duì)列采用的都是LRU算法替換,導(dǎo)致了緩存中有些高頻數(shù)據(jù)被替換出去,所以其命中率低于TC-Replace算法。
網(wǎng)絡(luò)帶寬是影響透明計(jì)算性能的重要因素,特別是移動(dòng)透明計(jì)算系統(tǒng),由于其面向的是移動(dòng)終端用戶,網(wǎng)絡(luò)信號(hào)不穩(wěn)定導(dǎo)致帶寬更容易受限。本文提出的緩存協(xié)作策略TC-CCS,通過(guò)設(shè)置本地緩存和P2P緩存來(lái)增加局域網(wǎng)內(nèi)部的數(shù)據(jù)交互,減少對(duì)外網(wǎng)的訪問(wèn),縮短用戶等待時(shí)間,減少網(wǎng)絡(luò)流量,并降低服務(wù)器端壓力,同時(shí)利用P2P緩存加快操作系統(tǒng)啟動(dòng)速度。通過(guò)模擬網(wǎng)絡(luò)帶寬受限情況進(jìn)行性能測(cè)試,結(jié)果表明,TC-CCS策略不僅能加快應(yīng)用軟件的啟動(dòng),而且能將操作系統(tǒng)的啟動(dòng)速度提高40%。由于該策略主要用于終端設(shè)備,因此下一步將從服務(wù)端緩存角度出發(fā)對(duì)其進(jìn)行優(yōu)化。
[1] ZHANG Y,GUO K,REN J,et al.Transparent computing:a promising network computing paradigm[J].Computing in Science and Engineering,2017,19(1):7-20.
[2] LI S,ZHOU Y,ZHANG Y.NSAP+:supporting transparent computing applications with a service-oriented protocol[J].Computing in Science and Engineering,2017,19(1):21-28.
[3] YI L,LI J,ZHANG Y.Improving the scalability of wearable devices via transparent computing technology[J].Computing in Science and Engineering,2017,19(1):29-37.
[4] PENG T,LIU Q,WANG G.A multilevel access control scheme for data security in transparent computing[J].Computing in Science and Engineering,2017,19(1):46-49.
[5] GUO K,HUANG Y,KUANG L,et al.CASP:a context-aware transparent active service provision architecture in a mobile internet environment[J].Computing in Science and Engineering,2017,19(1):7-12.
[6] ZHANG Y,ZHOU Y.TransOS:a transparent computing-based operating system for the cloud[J].International Journal of Cloud Computing,2011,1(4):287-301.
[7] 韋 理,張堯?qū)W,周悅芝.透明計(jì)算系統(tǒng)中緩存性能的仿真分析與驗(yàn)證[J].清華大學(xué)學(xué)報(bào)(自然科學(xué)版),2009,10(49):128-130.
[8] 高 原,張堯?qū)W,周悅芝.一種基于透明計(jì)算的多媒體I/O訪問(wèn)控制方法[J].湖南大學(xué)學(xué)報(bào)(自然科學(xué)版),2013,40(3):93-96.
[9] 韋 理,徐廣斌,張堯?qū)W,等.一種擴(kuò)展的多操作系統(tǒng)遠(yuǎn)程啟動(dòng)協(xié)議ENCBP[J].計(jì)算機(jī)研究與發(fā)展,2009,46(6):905-912.
[10] 周悅芝,張堯?qū)W,王 勇.一種用于網(wǎng)絡(luò)計(jì)算的可定制啟動(dòng)協(xié)議[J].軟件學(xué)報(bào),2003,14(3):538-546.
[11] 譚成輝.基于分級(jí)Cache的透明計(jì)算系統(tǒng)研究與實(shí)現(xiàn)[D].長(zhǎng)沙:湖南大學(xué),2010.
[12] 徐 云.基于虛擬化技術(shù)的透明計(jì)算系統(tǒng)優(yōu)化研究[D].長(zhǎng)沙:中南大學(xué),2015.
[13] 田 彪.移動(dòng)透明計(jì)算環(huán)境下的緩存優(yōu)化問(wèn)題研究[D].長(zhǎng)沙:中南大學(xué),2016.
[14] 胡懋智,徐 恪,夏樹(shù)濤,等,TOW:一種新的 P2P實(shí)時(shí)流媒體緩存替換算法[J].小型微型計(jì)算機(jī)系統(tǒng),2009,30(8):1485-1489.
[15] 李運(yùn)娣,馮 勇.基于DHT的P2P搜索定位技術(shù)研究[J].計(jì)算機(jī)應(yīng)用研究,2006,23(10):226-228.
[16] 曾曉云.基于Chord協(xié)議的混合P2P模型[J].計(jì)算機(jī)工程,2010,36(7):112-114.
[17] 張堯?qū)W,宋 虹,張 高.計(jì)算機(jī)操作系統(tǒng)教程[M].4版.北京:清華大學(xué)出版社,2013.