摘要:網(wǎng)絡(luò)設(shè)備的睡眠機(jī)制是實(shí)現(xiàn)網(wǎng)絡(luò)節(jié)能的一種方法。本文對(duì)網(wǎng)絡(luò)設(shè)備睡眠機(jī)制進(jìn)行了詳細(xì)的設(shè)計(jì),先分析了傳統(tǒng)睡眠機(jī)制存在的缺陷,然后提出動(dòng)態(tài)閾值調(diào)整睡眠時(shí)間的方法。
關(guān)鍵詞:網(wǎng)絡(luò)設(shè)備 睡眠機(jī)制 運(yùn)行狀態(tài)
0 引言
網(wǎng)絡(luò)設(shè)備的睡眠機(jī)制需要實(shí)際硬件的支持,Microsoft,Intel,Toshiba在1997年共同制定了ACPI規(guī)范,ACPI定義了設(shè)備電源狀態(tài)、系統(tǒng)的全局狀態(tài)和處理器電源狀態(tài),ACPI的主要目標(biāo)是使系統(tǒng)動(dòng)態(tài)地管理電源。根據(jù)ACPI規(guī)范,本文將網(wǎng)絡(luò)設(shè)備按照網(wǎng)絡(luò)設(shè)備狀態(tài)劃分。
1 網(wǎng)絡(luò)設(shè)備狀態(tài)劃分
為了清楚地闡述網(wǎng)絡(luò)設(shè)備的睡眠機(jī)制,本文將網(wǎng)絡(luò)設(shè)備的狀態(tài)劃分:運(yùn)行狀態(tài)、睡眠狀態(tài)、空閑狀態(tài)、關(guān)閉狀態(tài)。
2 動(dòng)態(tài)調(diào)整睡眠時(shí)間機(jī)制
利用網(wǎng)絡(luò)設(shè)備睡眠可以實(shí)現(xiàn)網(wǎng)絡(luò)節(jié)能。對(duì)于一個(gè)設(shè)備,如果其狀態(tài)轉(zhuǎn)換是即時(shí)的,即設(shè)備性能和功耗的損失為0,那么網(wǎng)絡(luò)設(shè)備睡眠機(jī)制的設(shè)計(jì)將會(huì)非常容易,設(shè)備狀態(tài)轉(zhuǎn)換策略可以非常貪婪:只要設(shè)備一空閑,就將其轉(zhuǎn)換到最深睡眠狀態(tài);如果有請(qǐng)求到來,設(shè)備立即轉(zhuǎn)換到運(yùn)行狀態(tài)。然而,這種假設(shè)只存在于理想設(shè)備中,現(xiàn)實(shí)情況是大多數(shù)設(shè)備在狀態(tài)轉(zhuǎn)換時(shí),性能和功耗損失都不可忽略。設(shè)備從運(yùn)行狀態(tài)進(jìn)入睡眠狀態(tài)需要一定的時(shí)間完成狀態(tài)轉(zhuǎn)換,從睡眠狀態(tài)返回到運(yùn)行狀態(tài)需要的恢復(fù)時(shí)間更長(zhǎng),因?yàn)樵谠撨^程中設(shè)備需要依次完成穩(wěn)定電源和始終、重新初始化設(shè)備、恢復(fù)上下文等工作。
因此,當(dāng)網(wǎng)絡(luò)設(shè)備正處于空閑狀態(tài)時(shí),系統(tǒng)將決定該設(shè)備是選擇繼續(xù)保持空閑狀態(tài)還是進(jìn)入低功耗的睡眠狀態(tài)。如果選擇進(jìn)入睡眠狀態(tài),系統(tǒng)需要先保存當(dāng)前的數(shù)據(jù),然后再讓設(shè)備進(jìn)入睡眠狀態(tài),直到檢測(cè)到設(shè)備喚醒信號(hào)為止。系統(tǒng)檢測(cè)到設(shè)備喚醒信號(hào)后,系統(tǒng)需要先恢復(fù)設(shè)備數(shù)據(jù),然后將設(shè)備轉(zhuǎn)換回到運(yùn)行狀態(tài)。網(wǎng)絡(luò)設(shè)備睡眠機(jī)制的關(guān)鍵問題就在于在什么時(shí)候、根據(jù)什么條件發(fā)起狀態(tài)轉(zhuǎn)換的命令。
由于設(shè)備從運(yùn)行狀態(tài)轉(zhuǎn)入低功耗睡眠狀態(tài)需要付出額外的代價(jià),一是增加了狀態(tài)轉(zhuǎn)換時(shí)所需的能耗Eex,二是增加了系統(tǒng)的延遲tde。因此設(shè)備只有在空閑時(shí)間足夠長(zhǎng)的情況下,轉(zhuǎn)換至睡眠狀態(tài)才會(huì)節(jié)省設(shè)備的能量損耗。設(shè)這個(gè)足夠長(zhǎng)的空閑時(shí)間最小值為Tthr,設(shè)備運(yùn)行狀態(tài)的功耗為Pa,睡眠狀態(tài)的功耗為Ps,空閑時(shí)間為Ti,設(shè)備喚醒所需的時(shí)間Twup和進(jìn)入睡眠狀態(tài)所需的時(shí)間tde之和為T0,則設(shè)備狀態(tài)轉(zhuǎn)換時(shí)必須滿足的條件:
設(shè)備在空閑狀態(tài)消耗的能量小于該時(shí)間段內(nèi)設(shè)備為工作狀態(tài)消耗的能量,即如下公式所示:Ps×(Ti-T0)+E0
然而在Ti時(shí)間段內(nèi),設(shè)備仍然處于高功耗運(yùn)行狀態(tài),因而造成部分能量損耗。為了改善這種能量浪費(fèi),本文使用另一種策略,空閑時(shí)間預(yù)測(cè)策略。該策略的核心思想是對(duì)當(dāng)前的空閑時(shí)間T長(zhǎng)度進(jìn)行預(yù)測(cè),當(dāng)預(yù)測(cè)的空閑時(shí)間長(zhǎng)度Ti>T,那么設(shè)備一空閑就進(jìn)入睡眠狀態(tài)。空閑時(shí)間T長(zhǎng)度與很多因素有關(guān),如網(wǎng)絡(luò)環(huán)境、用戶習(xí)慣和網(wǎng)絡(luò)設(shè)備的工作頻率等,并且設(shè)備空閑時(shí)間T的取值并沒有規(guī)律性可循,不能用傳統(tǒng)的概率方法來預(yù)測(cè)??紤]到在大多數(shù)情況下,在同一網(wǎng)絡(luò)環(huán)境中用戶的習(xí)慣是相似的,因此在同一網(wǎng)絡(luò)中的設(shè)備空閑時(shí)間長(zhǎng)度一般在某個(gè)固定的范圍內(nèi)。從這個(gè)角度來分析,同一網(wǎng)絡(luò)中的設(shè)備相鄰的空閑時(shí)間段一般具有一定的延續(xù)性。然而空閑時(shí)間也有突發(fā)性情況,比如說使用某一網(wǎng)絡(luò)設(shè)備的所有用戶突然都離開電腦去休息或做別的事情,造成網(wǎng)絡(luò)設(shè)備很長(zhǎng)一段時(shí)間的空閑時(shí)間,過一段時(shí)間后,空閑時(shí)間段的延續(xù)性又會(huì)恢復(fù)到常態(tài)。
為了更好地描述設(shè)備空閑時(shí)間的突發(fā)性情況,文獻(xiàn)定義:若ti(n)/Ti(n)≥C(其中,ti(n)為當(dāng)前空閑時(shí)間的長(zhǎng)度,Ti(n)為預(yù)測(cè)空閑時(shí)間的長(zhǎng)度,C為常數(shù)),則認(rèn)為ti(n)是網(wǎng)絡(luò)設(shè)備突發(fā)性的空閑時(shí)間段。由于設(shè)備當(dāng)前空閑時(shí)間的長(zhǎng)度是根據(jù)它與上一個(gè)空閑時(shí)間的長(zhǎng)度有延續(xù)性預(yù)測(cè)的,因此設(shè)備突發(fā)性的空閑時(shí)間段出現(xiàn)使實(shí)際值和上一空閑時(shí)間段長(zhǎng)度的預(yù)測(cè)之間出現(xiàn)偏差,對(duì)當(dāng)前設(shè)備的空閑時(shí)間長(zhǎng)度預(yù)測(cè)產(chǎn)生不利,為了糾正空閑時(shí)間長(zhǎng)度預(yù)測(cè)中的偏差,采用下式來預(yù)測(cè)當(dāng)前的空閑時(shí)間長(zhǎng)度如公式所示:Ti(n+1)=
本文提出一種新的網(wǎng)絡(luò)設(shè)備睡眠機(jī)制策略,采用動(dòng)態(tài)閾值方法調(diào)整網(wǎng)絡(luò)設(shè)備的睡眠時(shí)間。由于本文的網(wǎng)絡(luò)設(shè)備節(jié)能QoS路由算法在選路時(shí)繞開空閑設(shè)備,因此空閑設(shè)備的空閑時(shí)間更多,有機(jī)會(huì)進(jìn)入睡眠狀態(tài)。設(shè)網(wǎng)絡(luò)設(shè)備可在任何時(shí)刻進(jìn)入睡眠狀態(tài)和運(yùn)行狀態(tài),而且將網(wǎng)絡(luò)設(shè)備關(guān)閉能夠進(jìn)一步地降低設(shè)備能耗。這里假定將網(wǎng)絡(luò)設(shè)備轉(zhuǎn)換為睡眠狀態(tài)和關(guān)閉網(wǎng)絡(luò)設(shè)備的功耗是可忽略的,但是網(wǎng)絡(luò)設(shè)備轉(zhuǎn)換為運(yùn)行狀態(tài)和重新開啟的功耗是不可忽略的。如果網(wǎng)絡(luò)設(shè)備在某一時(shí)刻不執(zhí)行任何命令,就稱網(wǎng)絡(luò)設(shè)備在該時(shí)刻處于“空閑狀態(tài)”。初始狀態(tài)設(shè)設(shè)備的睡眠時(shí)間閾值為Ts,Ts的值通過該網(wǎng)絡(luò)設(shè)備的歷史情況預(yù)測(cè)。應(yīng)用動(dòng)態(tài)閾值法調(diào)整睡眠時(shí)間的長(zhǎng)度,前提是網(wǎng)絡(luò)在運(yùn)行期間的工作負(fù)載不均勻,并且系統(tǒng)能夠以一定的可信度預(yù)測(cè)到工作負(fù)載的波動(dòng)性,并且系統(tǒng)對(duì)工作負(fù)載的預(yù)測(cè)不消耗過多的能量。接下來討論網(wǎng)絡(luò)設(shè)備進(jìn)入睡眠和喚醒的時(shí)間和條件:
3 結(jié)語
雖然這種睡眠機(jī)制還會(huì)有丟包現(xiàn)象,但是在網(wǎng)絡(luò)設(shè)備睡眠時(shí)間閾值Ts不斷調(diào)整的過程中,睡眠時(shí)間會(huì)越來越適應(yīng)數(shù)據(jù)包到達(dá)時(shí)間,丟包率明顯下降。
參考文獻(xiàn):
[1]Hewleet-Packard I.Advanced configuration and power interface specification.ACPI Specification Document.Revision4.0a,2010.
[2]吳福煒,甘駿人.一種實(shí)時(shí)功耗管理算法[J].計(jì)算機(jī)學(xué)報(bào), 2003,29(5): 30-31.
[3]Nedevschi S,Popa L,Iannaccone G,Ratnasamy S, Wether-all D.Reducing network energy consumption via sleeping and rate-adaptationA].Proceeding of the 5th USENIX Symposium on Networked Systems Design and Implementation (NSDI'08)[C],San Francisco,CA,2008,323-336.
作者簡(jiǎn)介:王超(1972-),女,遼寧朝陽人,信息工程系副主任,副教授,研究方向:軟件開發(fā)。
摘要:網(wǎng)絡(luò)設(shè)備的睡眠機(jī)制是實(shí)現(xiàn)網(wǎng)絡(luò)節(jié)能的一種方法。本文對(duì)網(wǎng)絡(luò)設(shè)備睡眠機(jī)制進(jìn)行了詳細(xì)的設(shè)計(jì),先分析了傳統(tǒng)睡眠機(jī)制存在的缺陷,然后提出動(dòng)態(tài)閾值調(diào)整睡眠時(shí)間的方法。
關(guān)鍵詞:網(wǎng)絡(luò)設(shè)備 睡眠機(jī)制 運(yùn)行狀態(tài)
0 引言
網(wǎng)絡(luò)設(shè)備的睡眠機(jī)制需要實(shí)際硬件的支持,Microsoft,Intel,Toshiba在1997年共同制定了ACPI規(guī)范,ACPI定義了設(shè)備電源狀態(tài)、系統(tǒng)的全局狀態(tài)和處理器電源狀態(tài),ACPI的主要目標(biāo)是使系統(tǒng)動(dòng)態(tài)地管理電源。根據(jù)ACPI規(guī)范,本文將網(wǎng)絡(luò)設(shè)備按照網(wǎng)絡(luò)設(shè)備狀態(tài)劃分。
1 網(wǎng)絡(luò)設(shè)備狀態(tài)劃分
為了清楚地闡述網(wǎng)絡(luò)設(shè)備的睡眠機(jī)制,本文將網(wǎng)絡(luò)設(shè)備的狀態(tài)劃分:運(yùn)行狀態(tài)、睡眠狀態(tài)、空閑狀態(tài)、關(guān)閉狀態(tài)。
2 動(dòng)態(tài)調(diào)整睡眠時(shí)間機(jī)制
利用網(wǎng)絡(luò)設(shè)備睡眠可以實(shí)現(xiàn)網(wǎng)絡(luò)節(jié)能。對(duì)于一個(gè)設(shè)備,如果其狀態(tài)轉(zhuǎn)換是即時(shí)的,即設(shè)備性能和功耗的損失為0,那么網(wǎng)絡(luò)設(shè)備睡眠機(jī)制的設(shè)計(jì)將會(huì)非常容易,設(shè)備狀態(tài)轉(zhuǎn)換策略可以非常貪婪:只要設(shè)備一空閑,就將其轉(zhuǎn)換到最深睡眠狀態(tài);如果有請(qǐng)求到來,設(shè)備立即轉(zhuǎn)換到運(yùn)行狀態(tài)。然而,這種假設(shè)只存在于理想設(shè)備中,現(xiàn)實(shí)情況是大多數(shù)設(shè)備在狀態(tài)轉(zhuǎn)換時(shí),性能和功耗損失都不可忽略。設(shè)備從運(yùn)行狀態(tài)進(jìn)入睡眠狀態(tài)需要一定的時(shí)間完成狀態(tài)轉(zhuǎn)換,從睡眠狀態(tài)返回到運(yùn)行狀態(tài)需要的恢復(fù)時(shí)間更長(zhǎng),因?yàn)樵谠撨^程中設(shè)備需要依次完成穩(wěn)定電源和始終、重新初始化設(shè)備、恢復(fù)上下文等工作。
因此,當(dāng)網(wǎng)絡(luò)設(shè)備正處于空閑狀態(tài)時(shí),系統(tǒng)將決定該設(shè)備是選擇繼續(xù)保持空閑狀態(tài)還是進(jìn)入低功耗的睡眠狀態(tài)。如果選擇進(jìn)入睡眠狀態(tài),系統(tǒng)需要先保存當(dāng)前的數(shù)據(jù),然后再讓設(shè)備進(jìn)入睡眠狀態(tài),直到檢測(cè)到設(shè)備喚醒信號(hào)為止。系統(tǒng)檢測(cè)到設(shè)備喚醒信號(hào)后,系統(tǒng)需要先恢復(fù)設(shè)備數(shù)據(jù),然后將設(shè)備轉(zhuǎn)換回到運(yùn)行狀態(tài)。網(wǎng)絡(luò)設(shè)備睡眠機(jī)制的關(guān)鍵問題就在于在什么時(shí)候、根據(jù)什么條件發(fā)起狀態(tài)轉(zhuǎn)換的命令。
由于設(shè)備從運(yùn)行狀態(tài)轉(zhuǎn)入低功耗睡眠狀態(tài)需要付出額外的代價(jià),一是增加了狀態(tài)轉(zhuǎn)換時(shí)所需的能耗Eex,二是增加了系統(tǒng)的延遲tde。因此設(shè)備只有在空閑時(shí)間足夠長(zhǎng)的情況下,轉(zhuǎn)換至睡眠狀態(tài)才會(huì)節(jié)省設(shè)備的能量損耗。設(shè)這個(gè)足夠長(zhǎng)的空閑時(shí)間最小值為Tthr,設(shè)備運(yùn)行狀態(tài)的功耗為Pa,睡眠狀態(tài)的功耗為Ps,空閑時(shí)間為Ti,設(shè)備喚醒所需的時(shí)間Twup和進(jìn)入睡眠狀態(tài)所需的時(shí)間tde之和為T0,則設(shè)備狀態(tài)轉(zhuǎn)換時(shí)必須滿足的條件:
設(shè)備在空閑狀態(tài)消耗的能量小于該時(shí)間段內(nèi)設(shè)備為工作狀態(tài)消耗的能量,即如下公式所示:Ps×(Ti-T0)+E0
然而在Ti時(shí)間段內(nèi),設(shè)備仍然處于高功耗運(yùn)行狀態(tài),因而造成部分能量損耗。為了改善這種能量浪費(fèi),本文使用另一種策略,空閑時(shí)間預(yù)測(cè)策略。該策略的核心思想是對(duì)當(dāng)前的空閑時(shí)間T長(zhǎng)度進(jìn)行預(yù)測(cè),當(dāng)預(yù)測(cè)的空閑時(shí)間長(zhǎng)度Ti>T,那么設(shè)備一空閑就進(jìn)入睡眠狀態(tài)??臻e時(shí)間T長(zhǎng)度與很多因素有關(guān),如網(wǎng)絡(luò)環(huán)境、用戶習(xí)慣和網(wǎng)絡(luò)設(shè)備的工作頻率等,并且設(shè)備空閑時(shí)間T的取值并沒有規(guī)律性可循,不能用傳統(tǒng)的概率方法來預(yù)測(cè)。考慮到在大多數(shù)情況下,在同一網(wǎng)絡(luò)環(huán)境中用戶的習(xí)慣是相似的,因此在同一網(wǎng)絡(luò)中的設(shè)備空閑時(shí)間長(zhǎng)度一般在某個(gè)固定的范圍內(nèi)。從這個(gè)角度來分析,同一網(wǎng)絡(luò)中的設(shè)備相鄰的空閑時(shí)間段一般具有一定的延續(xù)性。然而空閑時(shí)間也有突發(fā)性情況,比如說使用某一網(wǎng)絡(luò)設(shè)備的所有用戶突然都離開電腦去休息或做別的事情,造成網(wǎng)絡(luò)設(shè)備很長(zhǎng)一段時(shí)間的空閑時(shí)間,過一段時(shí)間后,空閑時(shí)間段的延續(xù)性又會(huì)恢復(fù)到常態(tài)。
為了更好地描述設(shè)備空閑時(shí)間的突發(fā)性情況,文獻(xiàn)定義:若ti(n)/Ti(n)≥C(其中,ti(n)為當(dāng)前空閑時(shí)間的長(zhǎng)度,Ti(n)為預(yù)測(cè)空閑時(shí)間的長(zhǎng)度,C為常數(shù)),則認(rèn)為ti(n)是網(wǎng)絡(luò)設(shè)備突發(fā)性的空閑時(shí)間段。由于設(shè)備當(dāng)前空閑時(shí)間的長(zhǎng)度是根據(jù)它與上一個(gè)空閑時(shí)間的長(zhǎng)度有延續(xù)性預(yù)測(cè)的,因此設(shè)備突發(fā)性的空閑時(shí)間段出現(xiàn)使實(shí)際值和上一空閑時(shí)間段長(zhǎng)度的預(yù)測(cè)之間出現(xiàn)偏差,對(duì)當(dāng)前設(shè)備的空閑時(shí)間長(zhǎng)度預(yù)測(cè)產(chǎn)生不利,為了糾正空閑時(shí)間長(zhǎng)度預(yù)測(cè)中的偏差,采用下式來預(yù)測(cè)當(dāng)前的空閑時(shí)間長(zhǎng)度如公式所示:Ti(n+1)=
本文提出一種新的網(wǎng)絡(luò)設(shè)備睡眠機(jī)制策略,采用動(dòng)態(tài)閾值方法調(diào)整網(wǎng)絡(luò)設(shè)備的睡眠時(shí)間。由于本文的網(wǎng)絡(luò)設(shè)備節(jié)能QoS路由算法在選路時(shí)繞開空閑設(shè)備,因此空閑設(shè)備的空閑時(shí)間更多,有機(jī)會(huì)進(jìn)入睡眠狀態(tài)。設(shè)網(wǎng)絡(luò)設(shè)備可在任何時(shí)刻進(jìn)入睡眠狀態(tài)和運(yùn)行狀態(tài),而且將網(wǎng)絡(luò)設(shè)備關(guān)閉能夠進(jìn)一步地降低設(shè)備能耗。這里假定將網(wǎng)絡(luò)設(shè)備轉(zhuǎn)換為睡眠狀態(tài)和關(guān)閉網(wǎng)絡(luò)設(shè)備的功耗是可忽略的,但是網(wǎng)絡(luò)設(shè)備轉(zhuǎn)換為運(yùn)行狀態(tài)和重新開啟的功耗是不可忽略的。如果網(wǎng)絡(luò)設(shè)備在某一時(shí)刻不執(zhí)行任何命令,就稱網(wǎng)絡(luò)設(shè)備在該時(shí)刻處于“空閑狀態(tài)”。初始狀態(tài)設(shè)設(shè)備的睡眠時(shí)間閾值為Ts,Ts的值通過該網(wǎng)絡(luò)設(shè)備的歷史情況預(yù)測(cè)。應(yīng)用動(dòng)態(tài)閾值法調(diào)整睡眠時(shí)間的長(zhǎng)度,前提是網(wǎng)絡(luò)在運(yùn)行期間的工作負(fù)載不均勻,并且系統(tǒng)能夠以一定的可信度預(yù)測(cè)到工作負(fù)載的波動(dòng)性,并且系統(tǒng)對(duì)工作負(fù)載的預(yù)測(cè)不消耗過多的能量。接下來討論網(wǎng)絡(luò)設(shè)備進(jìn)入睡眠和喚醒的時(shí)間和條件:
3 結(jié)語
雖然這種睡眠機(jī)制還會(huì)有丟包現(xiàn)象,但是在網(wǎng)絡(luò)設(shè)備睡眠時(shí)間閾值Ts不斷調(diào)整的過程中,睡眠時(shí)間會(huì)越來越適應(yīng)數(shù)據(jù)包到達(dá)時(shí)間,丟包率明顯下降。
參考文獻(xiàn):
[1]Hewleet-Packard I.Advanced configuration and power interface specification.ACPI Specification Document.Revision4.0a,2010.
[2]吳福煒,甘駿人.一種實(shí)時(shí)功耗管理算法[J].計(jì)算機(jī)學(xué)報(bào), 2003,29(5): 30-31.
[3]Nedevschi S,Popa L,Iannaccone G,Ratnasamy S, Wether-all D.Reducing network energy consumption via sleeping and rate-adaptationA].Proceeding of the 5th USENIX Symposium on Networked Systems Design and Implementation (NSDI'08)[C],San Francisco,CA,2008,323-336.
作者簡(jiǎn)介:王超(1972-),女,遼寧朝陽人,信息工程系副主任,副教授,研究方向:軟件開發(fā)。
摘要:網(wǎng)絡(luò)設(shè)備的睡眠機(jī)制是實(shí)現(xiàn)網(wǎng)絡(luò)節(jié)能的一種方法。本文對(duì)網(wǎng)絡(luò)設(shè)備睡眠機(jī)制進(jìn)行了詳細(xì)的設(shè)計(jì),先分析了傳統(tǒng)睡眠機(jī)制存在的缺陷,然后提出動(dòng)態(tài)閾值調(diào)整睡眠時(shí)間的方法。
關(guān)鍵詞:網(wǎng)絡(luò)設(shè)備 睡眠機(jī)制 運(yùn)行狀態(tài)
0 引言
網(wǎng)絡(luò)設(shè)備的睡眠機(jī)制需要實(shí)際硬件的支持,Microsoft,Intel,Toshiba在1997年共同制定了ACPI規(guī)范,ACPI定義了設(shè)備電源狀態(tài)、系統(tǒng)的全局狀態(tài)和處理器電源狀態(tài),ACPI的主要目標(biāo)是使系統(tǒng)動(dòng)態(tài)地管理電源。根據(jù)ACPI規(guī)范,本文將網(wǎng)絡(luò)設(shè)備按照網(wǎng)絡(luò)設(shè)備狀態(tài)劃分。
1 網(wǎng)絡(luò)設(shè)備狀態(tài)劃分
為了清楚地闡述網(wǎng)絡(luò)設(shè)備的睡眠機(jī)制,本文將網(wǎng)絡(luò)設(shè)備的狀態(tài)劃分:運(yùn)行狀態(tài)、睡眠狀態(tài)、空閑狀態(tài)、關(guān)閉狀態(tài)。
2 動(dòng)態(tài)調(diào)整睡眠時(shí)間機(jī)制
利用網(wǎng)絡(luò)設(shè)備睡眠可以實(shí)現(xiàn)網(wǎng)絡(luò)節(jié)能。對(duì)于一個(gè)設(shè)備,如果其狀態(tài)轉(zhuǎn)換是即時(shí)的,即設(shè)備性能和功耗的損失為0,那么網(wǎng)絡(luò)設(shè)備睡眠機(jī)制的設(shè)計(jì)將會(huì)非常容易,設(shè)備狀態(tài)轉(zhuǎn)換策略可以非常貪婪:只要設(shè)備一空閑,就將其轉(zhuǎn)換到最深睡眠狀態(tài);如果有請(qǐng)求到來,設(shè)備立即轉(zhuǎn)換到運(yùn)行狀態(tài)。然而,這種假設(shè)只存在于理想設(shè)備中,現(xiàn)實(shí)情況是大多數(shù)設(shè)備在狀態(tài)轉(zhuǎn)換時(shí),性能和功耗損失都不可忽略。設(shè)備從運(yùn)行狀態(tài)進(jìn)入睡眠狀態(tài)需要一定的時(shí)間完成狀態(tài)轉(zhuǎn)換,從睡眠狀態(tài)返回到運(yùn)行狀態(tài)需要的恢復(fù)時(shí)間更長(zhǎng),因?yàn)樵谠撨^程中設(shè)備需要依次完成穩(wěn)定電源和始終、重新初始化設(shè)備、恢復(fù)上下文等工作。
因此,當(dāng)網(wǎng)絡(luò)設(shè)備正處于空閑狀態(tài)時(shí),系統(tǒng)將決定該設(shè)備是選擇繼續(xù)保持空閑狀態(tài)還是進(jìn)入低功耗的睡眠狀態(tài)。如果選擇進(jìn)入睡眠狀態(tài),系統(tǒng)需要先保存當(dāng)前的數(shù)據(jù),然后再讓設(shè)備進(jìn)入睡眠狀態(tài),直到檢測(cè)到設(shè)備喚醒信號(hào)為止。系統(tǒng)檢測(cè)到設(shè)備喚醒信號(hào)后,系統(tǒng)需要先恢復(fù)設(shè)備數(shù)據(jù),然后將設(shè)備轉(zhuǎn)換回到運(yùn)行狀態(tài)。網(wǎng)絡(luò)設(shè)備睡眠機(jī)制的關(guān)鍵問題就在于在什么時(shí)候、根據(jù)什么條件發(fā)起狀態(tài)轉(zhuǎn)換的命令。
由于設(shè)備從運(yùn)行狀態(tài)轉(zhuǎn)入低功耗睡眠狀態(tài)需要付出額外的代價(jià),一是增加了狀態(tài)轉(zhuǎn)換時(shí)所需的能耗Eex,二是增加了系統(tǒng)的延遲tde。因此設(shè)備只有在空閑時(shí)間足夠長(zhǎng)的情況下,轉(zhuǎn)換至睡眠狀態(tài)才會(huì)節(jié)省設(shè)備的能量損耗。設(shè)這個(gè)足夠長(zhǎng)的空閑時(shí)間最小值為Tthr,設(shè)備運(yùn)行狀態(tài)的功耗為Pa,睡眠狀態(tài)的功耗為Ps,空閑時(shí)間為Ti,設(shè)備喚醒所需的時(shí)間Twup和進(jìn)入睡眠狀態(tài)所需的時(shí)間tde之和為T0,則設(shè)備狀態(tài)轉(zhuǎn)換時(shí)必須滿足的條件:
設(shè)備在空閑狀態(tài)消耗的能量小于該時(shí)間段內(nèi)設(shè)備為工作狀態(tài)消耗的能量,即如下公式所示:Ps×(Ti-T0)+E0
然而在Ti時(shí)間段內(nèi),設(shè)備仍然處于高功耗運(yùn)行狀態(tài),因而造成部分能量損耗。為了改善這種能量浪費(fèi),本文使用另一種策略,空閑時(shí)間預(yù)測(cè)策略。該策略的核心思想是對(duì)當(dāng)前的空閑時(shí)間T長(zhǎng)度進(jìn)行預(yù)測(cè),當(dāng)預(yù)測(cè)的空閑時(shí)間長(zhǎng)度Ti>T,那么設(shè)備一空閑就進(jìn)入睡眠狀態(tài)??臻e時(shí)間T長(zhǎng)度與很多因素有關(guān),如網(wǎng)絡(luò)環(huán)境、用戶習(xí)慣和網(wǎng)絡(luò)設(shè)備的工作頻率等,并且設(shè)備空閑時(shí)間T的取值并沒有規(guī)律性可循,不能用傳統(tǒng)的概率方法來預(yù)測(cè)??紤]到在大多數(shù)情況下,在同一網(wǎng)絡(luò)環(huán)境中用戶的習(xí)慣是相似的,因此在同一網(wǎng)絡(luò)中的設(shè)備空閑時(shí)間長(zhǎng)度一般在某個(gè)固定的范圍內(nèi)。從這個(gè)角度來分析,同一網(wǎng)絡(luò)中的設(shè)備相鄰的空閑時(shí)間段一般具有一定的延續(xù)性。然而空閑時(shí)間也有突發(fā)性情況,比如說使用某一網(wǎng)絡(luò)設(shè)備的所有用戶突然都離開電腦去休息或做別的事情,造成網(wǎng)絡(luò)設(shè)備很長(zhǎng)一段時(shí)間的空閑時(shí)間,過一段時(shí)間后,空閑時(shí)間段的延續(xù)性又會(huì)恢復(fù)到常態(tài)。
為了更好地描述設(shè)備空閑時(shí)間的突發(fā)性情況,文獻(xiàn)定義:若ti(n)/Ti(n)≥C(其中,ti(n)為當(dāng)前空閑時(shí)間的長(zhǎng)度,Ti(n)為預(yù)測(cè)空閑時(shí)間的長(zhǎng)度,C為常數(shù)),則認(rèn)為ti(n)是網(wǎng)絡(luò)設(shè)備突發(fā)性的空閑時(shí)間段。由于設(shè)備當(dāng)前空閑時(shí)間的長(zhǎng)度是根據(jù)它與上一個(gè)空閑時(shí)間的長(zhǎng)度有延續(xù)性預(yù)測(cè)的,因此設(shè)備突發(fā)性的空閑時(shí)間段出現(xiàn)使實(shí)際值和上一空閑時(shí)間段長(zhǎng)度的預(yù)測(cè)之間出現(xiàn)偏差,對(duì)當(dāng)前設(shè)備的空閑時(shí)間長(zhǎng)度預(yù)測(cè)產(chǎn)生不利,為了糾正空閑時(shí)間長(zhǎng)度預(yù)測(cè)中的偏差,采用下式來預(yù)測(cè)當(dāng)前的空閑時(shí)間長(zhǎng)度如公式所示:Ti(n+1)=
本文提出一種新的網(wǎng)絡(luò)設(shè)備睡眠機(jī)制策略,采用動(dòng)態(tài)閾值方法調(diào)整網(wǎng)絡(luò)設(shè)備的睡眠時(shí)間。由于本文的網(wǎng)絡(luò)設(shè)備節(jié)能QoS路由算法在選路時(shí)繞開空閑設(shè)備,因此空閑設(shè)備的空閑時(shí)間更多,有機(jī)會(huì)進(jìn)入睡眠狀態(tài)。設(shè)網(wǎng)絡(luò)設(shè)備可在任何時(shí)刻進(jìn)入睡眠狀態(tài)和運(yùn)行狀態(tài),而且將網(wǎng)絡(luò)設(shè)備關(guān)閉能夠進(jìn)一步地降低設(shè)備能耗。這里假定將網(wǎng)絡(luò)設(shè)備轉(zhuǎn)換為睡眠狀態(tài)和關(guān)閉網(wǎng)絡(luò)設(shè)備的功耗是可忽略的,但是網(wǎng)絡(luò)設(shè)備轉(zhuǎn)換為運(yùn)行狀態(tài)和重新開啟的功耗是不可忽略的。如果網(wǎng)絡(luò)設(shè)備在某一時(shí)刻不執(zhí)行任何命令,就稱網(wǎng)絡(luò)設(shè)備在該時(shí)刻處于“空閑狀態(tài)”。初始狀態(tài)設(shè)設(shè)備的睡眠時(shí)間閾值為Ts,Ts的值通過該網(wǎng)絡(luò)設(shè)備的歷史情況預(yù)測(cè)。應(yīng)用動(dòng)態(tài)閾值法調(diào)整睡眠時(shí)間的長(zhǎng)度,前提是網(wǎng)絡(luò)在運(yùn)行期間的工作負(fù)載不均勻,并且系統(tǒng)能夠以一定的可信度預(yù)測(cè)到工作負(fù)載的波動(dòng)性,并且系統(tǒng)對(duì)工作負(fù)載的預(yù)測(cè)不消耗過多的能量。接下來討論網(wǎng)絡(luò)設(shè)備進(jìn)入睡眠和喚醒的時(shí)間和條件:
3 結(jié)語
雖然這種睡眠機(jī)制還會(huì)有丟包現(xiàn)象,但是在網(wǎng)絡(luò)設(shè)備睡眠時(shí)間閾值Ts不斷調(diào)整的過程中,睡眠時(shí)間會(huì)越來越適應(yīng)數(shù)據(jù)包到達(dá)時(shí)間,丟包率明顯下降。
參考文獻(xiàn):
[1]Hewleet-Packard I.Advanced configuration and power interface specification.ACPI Specification Document.Revision4.0a,2010.
[2]吳福煒,甘駿人.一種實(shí)時(shí)功耗管理算法[J].計(jì)算機(jī)學(xué)報(bào), 2003,29(5): 30-31.
[3]Nedevschi S,Popa L,Iannaccone G,Ratnasamy S, Wether-all D.Reducing network energy consumption via sleeping and rate-adaptationA].Proceeding of the 5th USENIX Symposium on Networked Systems Design and Implementation (NSDI'08)[C],San Francisco,CA,2008,323-336.
作者簡(jiǎn)介:王超(1972-),女,遼寧朝陽人,信息工程系副主任,副教授,研究方向:軟件開發(fā)。