• 沒有找到結果。

Web Clusters的以時間為基礎的需求分配排程法之設計與實作

N/A
N/A
Protected

Academic year: 2021

Share "Web Clusters的以時間為基礎的需求分配排程法之設計與實作"

Copied!
8
0
0

加載中.... (立即查看全文)

全文

(1)Web Clusters 的以時間為基礎的需求分配排程法之設計與實作 Design and Implementation of Time-based Request Dispatching Algorithms for Web Clusters 黃銘毅. 姜美玲. 吳孟潮. 國立暨南國際大學. 國立暨南國際大學. 國立暨南國際大學. [email protected]. [email protected]. [email protected]. 摘要. 一、簡介. 近年來,由於個人電腦的價格低廉以及網 路的普及化,使得網際網路的流量快速增加, 因此,以叢集式系統來取代高速主機成為近年 來的趨勢。為了要提昇叢集式系統整體的效 能,影響負載平衡的需求分配的排程法是一個 重要的研究課題。本論文提出以時間為基礎的 排 程法 來提供 有效 的負載 共享 ,並實 作 於 Linux 的 LVS project 內,實驗結果顯示,當後 端伺服主機的硬體等級不一致或者相同時,以 時間為基礎的排程演算法都能有效地提昇叢 集式系統的效能。. WWW 的服務快速成長及使用者日益劇 增的情況下,使得 WWW 的流量呈急速增加, 為了避免單一主機超載,因此有許多企業改採 用叢集式系統來平衡負載,採用叢集式系統可 以依照系統的負荷來增加主機的個數來分擔 工作量。然而隨著新設備的加入,叢集伺服系 統擁有不同等級的新舊伺服主機,如何讓等級 不同的伺服主機有效地運用於伺服主機群,於 是要藉助排程法來有效地分配並轉送所有使 用者的要求(Request)到適當的伺服主機服 務,才不會有負載不均所造成某一後端伺服主 機的工作量超載或者當機的情況發生。. 關鍵詞:叢集式系統、LVS project、Linux. 為了設計出一個有效分配的機制,本論文 提出了以時間為機制來反應後端伺服主機目 前的負載情形,選擇一台主機來當作分配工作 伺服主機,其主要工作負責作有效的分配服務 要求及計算服務要求的完成時間等機制來反 應後端伺服主機的負荷狀態,以後端伺服主機 的負荷來決定工作的排程。. Abstract In the recent years, because the price of personal computer is so cheap and people extensively uses network to connect to the web sites, the traffic of World Wide Web increases dramatically. Since cluster systems have the advantage of cost superiority than supercomputers and are able to satisfy the demand of users, using cluster systems to take place of supercomputers in business organizations has become a trend in the recent years. To improve the performance of the whole cluster system, the design of an effective request dispatching algorithm that affects the load balancing of a cluster system is an importance issue. In this paper, we propose a set of time-based request dispatching algorithms to provide effective load sharing and implement them on Linux LVS project. Performance evaluation results show that the proposed time-based request dispatching algorithms can effectively improve the performance of homogeneous and heterogeneous cluster systems.. 由於 Linux 是開放性原始程式碼,具有高 效能及穩定的作業系統,已被廣泛的使用來架 設各種的伺服器,所以本論文將所提的以時間 為 基 礎 排 程 法 實 作 於 Linux Virtual Server Project (LVS project)中[3]。然而 LVS Project 中原有八種的排程法皆無法得知後端伺服主 機目前的負荷情況,因此無法依照後端伺服主 機目前的負荷情況動態地分配工作至適當的 伺服主機,而且,在 LVS Project 中,僅有以 設定權重(Weight)來反應後端伺服主機的異 質性,然而根據 Weight 來分配 request 權重是 在初始時即需設定且不會隨著主機負荷情形 動態地調整。 本論文提出以時間為基礎的排程法,其原 理為,當伺服主機的負載較重時或者當後端伺 服主機群的硬體等級差異大時,硬體等級較差. Keywords: Cluster Systems、LVS project、Linux 1.

(2) 的伺服主機,所要完成前端工作分配主機所給 予的工作時間會較久,依此特性,可以反應後 端伺服主機目前的負荷情況以及硬體等級之 異質性。實驗結果顯示以時間為基礎的排程法 可以更有效地改善異質性與同質性的叢集式 系統的整體效能。. 二、Linux Virtual Server 之分配排程 演算法. 此排程法的想法在使用者的服務常常會索 取相同網頁內容來觀看,因此前端工作分配 主機會去維護同一目的地網路位址去對應 最近使用的後端伺服主機,若該後端伺服主 機目前是可用且系統沒有負載過度時,則由 該後端伺服主機來服務,若此目的地網路位 址尚未對應到後端伺服主機或者是該後端 伺服主機目前在忙碌中,則使用最少連線數 法來選擇一台最適的後端伺服主機,將服務 要求分配給後端伺服主機。. 目前在 Linux 核心 2.4 版的 LVS project[3] 中提供了八種平衡負載的演算法供網站系統 管理者來使用,說明如下:. (6) 臨 近 性 集 群 最 少 連 線 ( Locality-Based Least Connections with Replication,LBLCR) 排程法 LBLCR 與 LBLC 排 程 法 相 異 之 處 在 於 LBLC 排程法是從一個目的地網路位址對應 到一台後端伺服主機,而 LBLCR 是一個目 的地網路位址對應到一群後端伺服主機,其 流程為根據服務要求的目的地網路位址去 找出對應的後端伺服主機群,使用最少連線 數排程法去選擇一台最適的後端伺服主 機,若所選的後端伺服主機目前尚未處於忙 碌的狀況下,則把此服務要求轉送給此後端 伺服主機,若此後端伺服主機目前處於忙碌 狀況時,則表示後端伺服主機群目前均是忙 碌的,則使用最少連線數排程法去選擇一台 後端伺服主機來加入群集中,當這一群後端 伺服主機有一段時間沒有修改伺服主機名 單時,則把目前連線最多的後端伺服主機移 出此群集,以減低群集數量,避免後端伺服 主機過多而主機的系統資源沒有達到最佳 的利用。. (1) 輪流(Round Robin,RR)排程法 由前端工作分配主機依輪流方式將服務的 要求分配給後端伺服主機群來完成。 (2) 權 重 式 輪 流 ( Weighted Round Robin , WRR)排程法 根據後端伺服主機的效能等級來訂定權 重,所謂權重的定義可訂定工作分配的比重 值,假設有 n 台的後端伺服主機, Wi 為各 後端伺服主機的權重值,當總工作量為 i =1. ∑Wi 時,則每一後端伺服主機被分配到的 n. 工作量為 Wi 。此法的優點可使效能較好的 後端伺服主機可服務較多的工作,使得叢集 式系統達到最佳的效能。 (3) 最少連線數(Least Connections,LC)排 程法. (7) 根 據 目 的 地 位 址 雜 湊 ( Destination Hashing)排程法. 由於前端工作分配主機會記載目前後端伺 服主機的連線數,前端工作分配主機會依據 目前連線數最少的後端伺服主機優先分配 使用者的服務要求。. 前端工作分配主機會依服務要求的目的地 網路位址,作為雜湊的鍵值(Hash key) ,由 靜態的雜湊表中找出對應的後端伺服主 機,當此後端伺服主機目前處於可服務狀態 時,則前端工作分配主機將服務轉交給此後 端伺服主機。. (4) 權 重 式 最 少 連 線 ( Weighted Least Connections,WLC)排程法 使用權重來訂定後端伺服主機的服務能 力,如同使用權重式輪流排程法一般,假設 有n台後端伺服主機,每一台後端伺服主機 均設定一個權重 Wi ,並且目前的連線數為 Ci ,前端工作分配主機會根據以下公式來 選擇最適當的後端伺服主機: 最 適 當 的 後 端 伺 服 主 機 = min (. (8) 根據來源位址雜湊(Source Hashing)排程 法 前端工作分配主機會依服務要求的來源網 路位址,作為雜湊的鍵值(Hash key) ,由靜 態的雜湊表中找出對應的後端伺服主機,當 此後端伺服主機目前處於可服務狀態時,則 前端工作分配主機將服務轉交給此後端伺 服主機。. Ci ) Wi. (i=1、、n) (5) 臨 近 性 最 少 連 線 ( Locality-Based Least Connections,LBLC)排程法 2.

(3) 一台後端伺服主機的回應時間,再依回應時間 的長短來作為排程的準則。. 三、以時間為基礎的分配排程演算法 之設計與實作 現有 LVS project[3]的排程法均為靜態排 程法,不會依據叢集式系統中後端伺服主機群 各個目前的負載情況來調整,但是要得知後端 伺服主機群目前的負載情況時,通常的作法是 在前端工作分配主機與後端伺服主機中各實 作一個網路程式,每隔一段時間就會收集後端 伺服主機群目前系統的負載情況,藉此資訊來 平衡後端伺服主機的負載狀況,此法的優點是 可使得 IPVS 模組獲得更多後端伺服主機負載 情形,能夠更有效地作適當的排程調整,但是 缺點在於收集負載情況之網路程式會消耗前 後端伺服主機的系統資源及網路的頻寬。另 外,尚有要隔多久時間去收集負載資訊的問 題,若間隔時間太久時,其負載資訊容易過 時,若間隔時間太短時,則會浪費系統資源。. Struct ip_masq { struct list_head m_list, s_list, d_list; atomic_t refcnt; struct timer_list timer; __u16 protocol; __u16 sport, dport, mport; __u32 saddr, daddr, maddr; struct ip_masq_seq out_seq, in_seq; struct ip_masq_app *app; void *app_data; struct ip_masq *control; atomic_t n_control; unsigned flags; unsigned long timeout; unsigned state; struct ip_masq_timeout_table *timeout_table; #ifdef CONFIG_IP_MASQUERADE_VS struct ip_vs_dest *dest; atomic_t in_pkts; #endif unsigned long begin_time; struct a_undo *head,*tail; };. 為了要能動態地調整排程,我們提出以時 間為基礎的排程演算法,以時間為基礎來反應 目前後端伺服主機負載情況。我們將所提出的 排程演算法實作於 RedHat 7.0[4]版所附的 LVS project 套件中,我們主要是修改了 IPVS 模組以達到所需的功能。 本研究是設計以時間為基礎的排程演算 法,主要是以時間為基礎來反應目前後端伺服 主機負載情況,而反應後端伺服主機負載情況 的方法可以有不同的方式。以下將介紹本研究 所提出之方法,包含快速回應法、累積工作時 間最少優先法、平均工作時間最少優先法、及 累積未完成工作時間最少優先法。同時,我們 亦 實作 後端伺 服主 機工作 量負 荷最少 優 先 法,這個方法的實作,最主要是用來與我們所 提出的以時間為基礎的排程演算法作為對照 組之用,前 4 種排程法是在前端工作分配主機 使用時間資訊來推估各後端伺服主機的負載 情形,而此法是由前端工作分配主機需要定期 去向後端伺服主機去要負載資訊來作排程的 依據。. **************************************** struct ip_vs_dest { struct list_head __u32 __u16 unsigned unsigned atomic_t atomic_t atomic_t int struct list_head __u16 __u32 __u16 __u32 unsigned long unsigned long unsigned long unsigned long unsigned int atomic_t };. 3.1、快速回應法 一般而言,快速回應(Fast Response)是 以前端工作分配主機各發出一個封包給後端 伺服主機群來測量回應的速度以反應目前負 載情況,前端工作分配主機可依據各後端伺服 主機的反應速度來作排程的決策準則。. 圖 1.. 我們把每一連線記錄中多加入一個時間 戳記作為開始的時間 Ts,當連線結束之後,我 們以目前時間 Te 減去開始時間 Ts 得到一個回 應時間 Tr,並記錄回應時間,如此可以得到每 3. n_list; addr; port; flags; masq_flags; activeconns; inactconns; refcnt; weight; d_list; protocol; vaddr; vport; vfwmark; fast_response_time; atime; ajob; unit; threshold; current_threshold;. struct ip_masq 及 struct ip_vs_dest.

(4) 入了一個更新資訊機制,因為當後端伺服主機 的負載資訊過了一段時間後,負載資訊無法正 確反應出真實負載情況,所以每一次間隔時間 到了之後就必須重新計算一次。. 由於需要考量到後端伺服主機軟、硬體的 差異性,因此我們設定一個臨界值,這一臨界 值表示此伺服主機的最大連線數值,根據臨界 值來表示伺服主機最大的負載量,所以在選擇 一台後端伺服主機時,判斷該主機是否有超出 其臨界值。若此後端伺服主機已超出其臨界 值,則選擇其他的伺服主機來提供服務。 在設計以時間為基礎的演算法時,須考量 排程演算法收集到時間資訊的時效性,必須每 間隔一段時間來重新收集資訊一次,所以間隔 時間的長短反應了所收集到的時間資訊是否 能夠真正的反應後端伺服主機的負載情況。 以下介紹如何實作快速回應於 IPVS 模組 中,包含 struct ip_vs_dest 及 struct ip_masq, 如圖 1 所示,反白之處代表由我們外加的變數 以供排程演算法之用, ip_masq 這個資料結構 主要是用來記載使用者端與叢集式系統的連 線記錄,我們在 ip_masq 資料結構中加入 unsigned long begin_time 的變數,它是一個時 間戳記,用來記錄建立連線的啟始時間。另一 資料結構 ip_vs_dest 主要是記載後端伺服主機 的資訊,並且使用雙向串列連接每台後端伺服 主機的資料,我們在 ip_vs_dest 資料結構中加 入一個 unsigned long fast_response_time 的變 數,以作為反應後端伺服主機之目前負載情 況,把快速回應實作入 IPVS 模組中。而快速 回應演算法之流程圖如圖 2 所示,當使用 IPVSADM 來新增後端伺服主機群時,IPVS 模組會把每台伺服主機的 fast_response_time 設定為零以作為初始化,當有一封包流入叢集 式系統且此封包的旗標 syn 等於1,且目的地 埠為 HTTP 80 的服務埠時,IPVS 模組會建立 新的連線記錄,並將資料結構 ip_masq 中的 begin_time 變 數 給 予 目 前 的 系 統 時 間 (jiffies),作為連線起始時間,IPVS 模組會 呼 叫 ip_vs_schedule() 函 式 來 排 程 , ip_vs_schedule()會循序讀取每一台後端伺服 主 機 的 資 料 結 構 ip_vs_dest 的 fast_response_time 變數,並且從伺服主機群中 找出最小 fast_response_time 且尚未超過臨界 值的主機,作為選擇後端伺服主機的依據,再 將該伺服主機的目前的連線數加1。. 圖 2. 快速回應演算法之流程圖 3.2 累積工作時間最少優先法 累積工作時間最少優先的排程法的設計 之觀念在於一段時間內,累積工作時間越多時 ,表示後端伺服主機的負載越重,反之,其累 積工作時間越少時,表示後端伺服主機越有能 力負擔新的服務請求,因此我們將累積工作時 間最少優先法實作於IPVS模組內,其作法和快 速回應相似。 如圖1所示,我們在資料結構ip_masq中, 新增一個變數begin_time,用來記錄新增此連 線記錄的時間,同時也提供計算要完成此一服 務需求所花費的時間。另外在資料結構 ip_vs_dest中,新增一個atime的變數,用來累 積此後端伺服主機的工作時間,把 ip_vs_schedule()修改成找尋累積工作時間最 少的後端伺服主機且尚未超過臨界值的伺服 主機,優先被挑出來服務。 如圖3所示,累積工作時間最少優先的流 程與快速回應的流程相同,同時亦有設定間隔 時間來更新時間資訊及設定臨界值的機制。每 當建立一連線記錄時就記錄連線開始時間,當 連線結束時,就會算出此連線所花費的時間, 並累積至該連線記錄的後端伺服主機的累積 工作時間atime變數中,當ip_vs_schedule()欲作 排程時,會參考後端伺服主機群的atime變數 ,並找出最小的atime且尚未超過臨界值以作 為最適的伺服主機。. 當IPVS模組收到IP層所傳來的封包,若此 封包的旗標rst等於1且目的地埠為HTTP 80埠 時,IPVS模組會找出此封包當初所建立的連線 記錄,並且使用目前系統時間jiffies變數減去 連線記錄的資料結構ip_masq中的begin_time 來得到此連線的回應時間,再將此回應時間更 新 該 後 端 伺服 主 機 的 資料 結 構 ip_vs_dest的 fast_response_time變數,並且把該伺服主機的 目前連線數減1。此外,我們在IPVS模組中加 4.

(5) 3.4 累積未完成工作時間最少優先法 累積未完成工作時間最少優先法的想法 是基於後端伺服主機累積未完成的工作量越 多時,其表示後端伺服主機的負載越重。舉例 來說,當後端伺服主機A目前擁有三個HTML 檔尚未作完,後端伺服主機B則有兩個圖形檔 ,因為圖形檔案的大小遠比文字檔大的多,所 以我們不能使用以工作量來計算它,改採用計 算時間方式來反應後端伺服主機的負載情況 ,所以計算出屬於該後端伺服主機的每一個尚 未結束連線,從開始連線的時間到目前的時間 ,累積每一個連線時間。 將累積未完成工作時間最少優先法實作 於IPVS模組的方式與前面所提的方法有些不 同,由於IPVS模組中是以雜湊方式來記錄連線 資料,IPVS模組是根據封包的IP標頭的資訊, 如:protocol、source port、destination port、source address及destination address來找出連線記錄, 所以無法依後端伺服主機的網路位址來找出 所有的連線記錄,因此,為了要能收集到後端 伺服主機的連線記錄之開始時間,我們增加了 struct a_undo資料結構,如圖5所示,其中在資 料結構a_undo中的link是用來連接連線記錄, 再從連線記錄中新增一連線記錄的開始時間 ,並使用佇列(Queue)方式來維護此串列, 所以如圖1所示,在資料結構ip_vs_dest中,新 增加了兩個指標變數,分別為struct a_undo *head,*tail;作為佇列的新增與刪除之用,因為 伺服主機在處理使用者的服務需求時都採先 到先服務的方式,所以使用兩個指標分別指向 佇列的頭尾,以加速佇列處理的速度。. 圖3. 累積工作時間最少優先之流程圖. 3.3 平均工作時間最少優先法 平均工作時間最少優先是由累積工作時 間最少優先演變而來的,此法先計算出累積工 作時間及總工作量,其公式:累積工作時間除 以總工作量等於平均工作時間,我們在圖1中 的ip_vs_dest資料結構中加作了三個變數atime 、ajob及unit,分別作為累積工作時間、累積 工作量及平均工作時間之用途,在ip_masq中 設有begin_time來記錄連線開始的時間,我們 修改IPVS模組使其具有累積時間、累積工作量 ,並計算出平均工作時間之功能,再更新該後 端伺服主機的結構變數ip_vs_dest中的unit,如 此 一 來 , 當 ip_vs_schedule() 被 呼 叫 時 , ip_vs_schedule()可參考各後端伺服主機的平 均工作時間來作排程之用。圖4說明其演算法 之運作流程與累積工作時間最少優先法相似 ,不同的是增加了計算平均工作時間的功能。. struct a_undo { struct ip_massq *link; struct a_undo *head; struct a_undo *tail; }; 圖 5 struct a_undo 結構 在圖 6 的流程圖中,當使用者端發出一個 請求連線的封包且目的地埠為 HTTP 服務埠 時,IPVS 模組會檢查封包的旗標狀態及目的 地埠,並新增一連線記錄及配置一個資料結構 a_undo 變數來鏈結連線記錄,並在連線記錄中 新增一時間戳記,此時 ip_vs_schedule()會從後 端伺服主機群中找出累績未完成工作時間最 少的伺服主機且該伺服主機的連線數尚未超 過臨界值,當 IPVS 模組收到一個封包,且封 包的旗標狀態為 rst=1時及目的地埠為 80. 圖 4. 平均工作時間最少優先之流程圖 5.

(6) 時,IPVS 模組會根據封包的資料來找出連線 記錄,並從連線記錄中找出後端伺服主機的資 料,再至後端伺服主機的佇列中移除此一連線 記錄。. 質性及異質性的叢集式系統架構,所以我們建 構了兩種不同的硬體環境,如表 1 及表 2 所 示,並將整個研究實作於內部私有網路中,以 便免不必要的外部因素干擾實驗的公平與正 確性。. 由於計算累積未完成工作時間都在呼叫 排程程式時,即時計算累積未完成工作時間, 因此不使用間隔時間來清除時間作重計的動 作。. 表 1. 異質性叢集式系統實驗之硬體架構. 表 2. 同質性叢集式系統實驗硬體架構 圖 6.累積未完成工作時間最少優先之流程圖 3.5 後端伺服主機工作量負荷最少優先法 後端伺服主機工作量負荷最少優先就是 收集後端伺服主機的負載資訊來作為排程的 依據。在 Linux 的/proc 目錄中存在許多有關於 目前作業系統的狀態的檔案,我們選取二個檔 案分別為 loadavg 及 stat[4]來作為暸解伺服主 機目前負載情況,其中自 loadavg 檔案可以得 到 CPU 的負載資訊,而自 stat 檔案可以得到 磁碟的 I/O 資訊。我們撰寫了一組 Client/Server 的 網路 程式來 收集 後端伺 服主 機的負 載 情 形,並利用以下的公式來表示後端伺服主機目 前負載的情況:. 在前端工作分配主機中,我們使用了 Redhat 7.0 版所附的 LVS 套件以及使用了 IPVSadm-1.15 版的管理程式來建構前端工作 分配主機,並使用 IPVSADM 來設定叢集式系 統初始化設定及啟動 IPVS 模組運作,且使用 IP Tunneling 轉送機制來轉送封包給後端伺服 主機,在後端伺服主機方面,我們必須設定作 業系統能夠支援 IP Tunneling 協定,如此一 來,後端伺服主機才能接收來自前端工作分配 主機轉送的封包,並且在後端伺服主機中安裝 Apache 伺服軟體,來提供網頁存取的服務。 另外在實驗中我們選用公正且免費的測效軟 體,分別為 AutoBench[2]及 WebBench[5]。. 後端伺服主機目前負載=目前 CPU 負載 +α *(磁碟目前讀寫總次數) 其中公式 α 在我們的實驗中所設定為 0.05,是 由 觀察 實驗中 後端 伺服主 機群 所得到 的 數 值,再由 ip_vs_schedule()從後端伺服主機群 中,找出最小的負載之後端伺服主機來服務。. 四、實驗與討論 本實驗叢集式系統之硬體環境考量到同 6.

(7) 在 LVS project 所提供的八種排程模組, 因為受限於測試端的電腦數量有限及測效軟 體只能針對一個網站來作測效,因此無法使用 LBLC、LBLCR、Destination Hashing 及 Source Hashing 等排程法。在 LVS 測效報告[6]中顯示 RR、WRR、LC 及 WLC 排程法在異質性的後 端伺服主機中,以 WLC 的效能為最佳,因此 以 WLC 排程法來作為我們異質性實驗中的對 照組。另一方面,測試 LVS 排程法後得到以 LC 的排程法為最佳,而因此同質性的實驗中 LC 比 WLC 的效能好是因為 WLC 多了處理 Weight 的程序。我們各自以 WLC 及 LC 排程 法來作為時間為基礎的排程法作為比較之用。. 圖 7. 以時間為基礎的排程法與 WLC 排 程法之比較圖. 4.1 異質性後端伺服主機的實驗 為了能充分反應伺服主機的目前工作負 載,我們加入每隔一段時間就要重新計算工作 時間的機制,所以我們先個別找出較佳的間隔 時間的設定,由實驗中得知累積工作時間最少 優先法之間隔設定成 1 秒、平均工作時間最少 優先法設定間隔為 0.6 秒較佳,而快速回應法 設定間隔為 0.4 秒,及後端伺服主機工作量負 荷 最少 優先法 設定 間隔為 1秒 為較佳 的 時 間,其中累積未完成工作時間最少優先法中並 沒有間隔時間的機制,因為排程程式會即時地 計算各台伺服主機未完成的工作時間,所以不 需要找間隔時間。實驗結果如圖 7、8 所示, 其中以快速回應法與平均工作時間最少優先 法為最佳,其次是累積工作時間最少優先,這 三種排程法皆可以有效地提高叢集式系統的 效率。. 圖 8. 以時間為基礎的排程法與 WLC 排 程法之比較圖. 4.2 同質性後端伺服主機的實驗 因為後端伺服主機為同質性的實驗環境 與異質性的實驗環境不同,所以我們必須再一 次重覆地找出間隔時間,由實驗中可得知累積 工作時間最少優先法之間隔設定成 1 秒較 佳、平均工作時間最少優先法設定間隔為 0.6 秒較佳、快速回應法設定間隔為 0.8 秒,及後 端伺服主機工作量負荷最少優先法設定間隔 為1秒為較佳的時間。實驗結果如圖 9、10 所 示,以快速回應法與平均工作時間最少優先法 為最佳。 圖 9. 以時間為基礎的排程法與 LC 排程 法之比較圖. 7.

(8) http://www.xenoclast.org/autobench/.. 圖 10. 以時間為基礎的排程法與 WLC 排程法之比較圖. 五、結論 在以時間為基礎的排程演算中,我們找到 了三種有助於平衡負載的排程,實驗的結果顯 示,以快速回應法、平均工作時間最少優先法 及累積工作時間最少優先法可以提昇叢集式 系統的效能。由異質性叢集式系統實驗中,這 三種排程法有較顯著的提昇異質性的叢集式 系統的效能,能夠將負載依照各後端伺服主機 的處理能力來分散。在同質性叢集式系統實驗 中,只有快速回應法及平均工作時間最少優先 法可以大幅度改善叢集式系統的效能,累積工 作時間最少優先法也能提昇其效能,但是都較 LVS 中原有的的 LC 與 WLC 的排程法好。然 而,以收集後端伺服主機的負荷法來作排程因 為 是透 過後端 伺服 主機發 送負 載資訊 的 封 包,來告知前端工作分配主機目前後端伺服主 機的負載情況,但是前端工作分配主機獲取負 載資訊必須使得後端伺服主機須耗費 CPU 資 源來發送封包告知負載情況,且耗費網路頻 寬,因此,使得後端伺服主機的效能降低而影 響整個叢集式系統的效能。 在我們的實驗中,我們是採用 WebBench 5.0 及所附的測效檔來作測試,未來將以實際 的流量來作測試,且本次的實驗是以一個網站 來作測試,其他種類的服務是否也能適用以時 間為機制來作排程的演算法,這也是我們要進 一步研究的課題。. 六、參考文獻 [1]. 黃銘毅,叢集式系統以時間為基礎之排 程法與以瞭解服務內容之需求分配平台 的研究與製作,國立暨南國際大學資訊 管理學院研究所碩士論文,中華民國九 十二年六月。. [2]. Autobench Website, 8. [3]. Linux Virtual Server Project Website, http://www.linuxvirtualserver.org.. [4]. RedHat Linux Website, http://www.redhat.com/.. [5]. WebBench Benchmark Website, http://www.veritest.com/benchmarks/web bench/home.asp?visitor.. [6]. Mike keefe and Patrick O’Rourke, “Performance Evaluation of Linux Virtual Server,” April 6, 2001..

(9)

參考文獻

相關文件

• 先定義一個 struct/class Node ,作為 linked list 的節點,裡面存資 訊和一個指向下一個 Node 的指標. • 使用時只用一個變數 head 記錄 linked

•  先定義一個struct/class Node,作為linked list的節點,裡面存資 訊和一個指向下一個Node的指標. • 

(1) 能依工件形狀及精度 要求,並配合機械設備 規劃與安排適當之工 作程序,且能估算加工 工時。. (2)

伊拉克的基礎建設年久失修,醫療、教育、電力皆無法滿足民生需求,即使歷經 五次議會大選仍無改善,促成數以萬計的民眾於

z請利用 struct 記錄 Bob 和 Alice 的相關資訊 z列印出 Bob 及 Alice 分別花多少錢. z再列印出

z請利用 struct 記錄 Bob 和 Alice 的相關資訊 z列印出 Bob 及 Alice 分別花多少錢. z再列印出

z請利用 struct 記錄 Bob 和 Alice 的相關資訊 z列印出 Bob 及 Alice 分別花多少錢. z再列印出

(八)教科書編撰時宜兼顧各單元之學理基礎與生活實例,宜依照參考時數設計 教學「活動」