第二章 研究背景與相關研究
2.4 節 負載平衡機制
在點對點環境中包含了許多的節點以及他們所分享的資源,並且常常要應付 許多的要求(例:檔案與搜尋要求)。如果所有的要求都集中在某一個節點的話,
會造成熱點(hot spot),並且會減低效能,因此需要有負載平衡的機制來處理熱點 的產生,在點對點典型的檔案分享環境中,有幾種負載平衡方法能夠來達成這項 目標[34](i)catch message(ii) replication at neighbors’nodes (ii) make use of multiple hash functions。當檔案發佈的時候,同時也發佈 routing message,因此我們可以 使用 routing message 來 catch file。而當大量的檔案要求都集中在某一個節點時,
節點會將其檔案複製到鄰近的節點,來分擔負載。在[33]中,它們提出了使用 multiple hash functions 的技術來解決上述的問題,當有節點要求檔案的時候,它 們使用二元搜尋演算法來找出一個使用過的 hash function 來找到檔案,當一個檔 案需要複製的時候,則使用二元搜尋演算法來找到第一個未使用的 hash funtion
來做檔案複製。在[34]中,作者提出了“File Access History Information"的機制 來預測檔案存取的頻率,透過計算後,將檔案複製出較多的副本,分散於不同的 站台,藉以分散負載,而我們也提出負載預測的概念於處理器與記憶體的使用頻 率,透過曲線趨勢預測方法來得知站台未來的負載程度。
在分散式的環境中,系統集合了許多計算節點來分享計算資源,藉由 load sharing 達到分享計算能力,並藉由轉換工作與任務來增進系統的效能[23]。load sharing 策略一般有動態與靜態兩種做法,以下介紹 3 種常見的動態 loading sharing 策略:
Sender-initiated policy[1][17][18]
這個策略主要在於已經負載過重的的站台主動的將工作轉換到負載較 輕的Peer來執行,以減輕自身的負擔, 這個策略的缺點在於若是整個分 散式環境的節點負載都重時,每個站台頻頻送出詢問訊息,而都無法獲 得回應,要是詢問的次數沒有作好限制,會造成了頻寬的浪費。
Receiver-initiated policy[4][7][18]
在站台的負載輕,且有餘力去分擔其他節點的工作時,主動去詢問負載 重的站台是否將工作轉移。
相對於Sender-initiated policy,在站台都為低負載的情況下,會送出過多 無效的訊息,但是因為工作量低,對比於在高負載時大的工作量與無效 訊息的累贅,所造成的影響不會如般Sender-initiated policy嚴重。
Symmetric policy[17][27]
此 策 略 綜 合 了 上 述 的 兩 個 策 略 , 但 也 有 著 兩 個 策 略 的 優 缺 點 , sender-initiated policy 於 高 負 載 時 發 出 過 多 無 用 的 訊 息 , 而 receiver-initiated policy 於低負載時發出過多無用的訊息,因此無論在站 台運作的情況為高或低負載,消耗過多通訊容量,是一個成本(Cost)相當 高的策略做法。
考量以上提出的三種策略,經過比較其優缺點,我們改採用層級策略的方 式,透過負載層級的判定來執行對應的策略,藉以減低成本,增進效率。
在格網的環境中,對於加入的成員較為嚴謹,因為格網的要求是穩定和高安 全性,所以在格網中的負載管理比較偏向集中式方法,在工作提交時使用集中式 的工作提交 manager(例:Condor、RB)來從 GIS 蒐集虛擬資源中的資源,之後在 將工作於調配的資源中執行。在[35]中,在資料格網(Data Grid)的環境下,使用 Load Manager 來分配工作,在考慮處理器與記憶體的負載下,多增加了資料存 取(data access)的考量,來增進整體的資源使用,同時在裡面可以看出一個觀念,
若在資源許可下,工作在本地(local)端會擁有最好的執行效益。
集中式的負載平衡方式,在點對點這樣動態的環境下,可能會對其資源的蒐 集與調配會有困難,所蒐集到的資源可能因為節點的加入或離開造成的變動而不 好掌握,因此在我們實驗的點對點格網環境下,較不適用。依據 load sharing 策 略,我們提出了分散式動態負載平衡方法,藉由層級策略、主動詢問,並透過有 效的工作分配(scheduler),幫助執行過載的站台,把工作轉移到負載較輕的站台 處理,以增進點對點中電腦資源的使用,並增進效能。