国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      公平性好的Web服務器集群系統(tǒng)輪詢調(diào)度負載均衡方法

      文檔序號:7772532閱讀:316來源:國知局
      專利名稱:公平性好的Web服務器集群系統(tǒng)輪詢調(diào)度負載均衡方法
      技術領域
      本發(fā)明屬于集群服務器技術領域,具體來說涉及一種公平性好的Web服務器集群系統(tǒng)輪詢調(diào)度負載均衡方法。
      背景技術
      隨著網(wǎng)絡技術的發(fā)展和計算機的普及,網(wǎng)絡的規(guī)模不斷擴大,大量的應用都在圍繞著網(wǎng)絡進行,促進了 ^ternet用戶數(shù)和流量的快速增長。同時,隨著網(wǎng)絡硬件設備的飛速進步,網(wǎng)絡帶寬的瓶頸效應日趨減弱,Web服務器的性能問題逐漸顯現(xiàn)出來,由于單一的服務器系統(tǒng)處理客戶請求的能力有限,當并發(fā)訪問的人數(shù)越來越多時,就會造成Web服務器的負荷加重甚至崩潰,可見如何解決服務器的高負荷問題、處理快速增長的客戶請求已經(jīng)是無法回避的問題,Web服務的高性能、高可用問題已經(jīng)成為Web服務領域研究的熱點。 從目前的研究方向看,服務器方向的研究可以歸結為兩個方面通過單純提升處理器等服務器硬件性能來提高服務器的負載能力是比較直接的解決方法,這是從實現(xiàn)機制上入手, 主要研究Caching技術、預取技術等,另外對客戶訪問行為進行分析,研究可以縮小響應時間的方法,這些技術可以在現(xiàn)有服務器設備的基礎上盡可能地提高系統(tǒng)的性能,但性能提高的程度有限,同時也會帶來比較大的開銷,包括昂貴的服務器硬件,無法保護已有的投資等方面,對于中小型企業(yè)來說是一個不小的負擔。另一種解決方法是集群思想,這是從體系結構入手,將過去單一的服務器結構擴充為集群式服務器結構,使用多臺服務器組成集群系統(tǒng)提供服務,通過一定機制使他們共同分擔系統(tǒng)負載,這種結構對單一的服務器沒有太高的性能要求,但可以顯著提高服務器的總體性能。對用戶而言,整個系統(tǒng)仿佛是一臺單一的邏輯服務器,這樣的系統(tǒng)能夠提供較強的可擴展性、較好的吞吐性能和高可靠性。相比之下,Web服務器集群系統(tǒng)是解決當前Web服務性能問題的有效途徑,它將用戶的請求按照負載均衡策略分發(fā)到集群中的某臺服務器上去,通過服務器之間的協(xié)同工作并行處理用戶的請求,從而提高系統(tǒng)運行效率,提高整個系統(tǒng)的性能。不過,異構服務器集群系統(tǒng)比同構服務器集群系統(tǒng)更有實際意義,但實現(xiàn)起來困難要大得多。為實現(xiàn)一個高效的異構Web服務器集群系統(tǒng),必須解決許多問題,負載均衡就是其中的關鍵問題之一,其他方面還包括請求分配、容錯技術等。對于異構Web服務器集群系統(tǒng),各臺Web服務器性能不同,各種負載均衡方法將導致系統(tǒng)中各臺Web服務器對外表現(xiàn)不同,同時,也實際上決定了 Web服務器集群系統(tǒng)性能的高低,當Web服務器集群系統(tǒng)中各臺Web服務器的負載處于均衡狀態(tài)時,請求分配的效率是最高的。因此,可以通過負載均衡方法來控制負載的分布,使 Web服務器集群系統(tǒng)的負載分配盡量達到均衡,提高請求分配的效率,使服務器資源得到充分利用,為用戶提供更好的Web服務。對于如何實現(xiàn)Web服務器集群系統(tǒng)的負載均衡,目前己經(jīng)提出了許多的算法和方法,輪詢(Round-Robin)類調(diào)度方法就是其中最基本的方法之一。最簡單的輪詢調(diào)度方法就是分配器(Dispatcher)以輪詢的方式依次選擇Web集群系統(tǒng)中的服務器,將Web請求或網(wǎng)絡連接分配給所選擇的服務器進行處理。分配器對每個服務器都是平等對待,不考慮服務器的處理能力。另一種輪詢調(diào)度方法稱為加權的輪詢(Weighted Round-Robin)調(diào)度方法, 根據(jù)各臺實際服務器的處理能力給它們分配不同的權重,用相應的權值表示服務器的處理性能,然后分配器根據(jù)服務器的權值來給服務器分配連接,權值高的服務器先收到連接,比權值低的服務器處理更多的連接,服務器處理的連接數(shù)與服務器的權值成正比。輪詢類調(diào)度方法的優(yōu)勢在于實現(xiàn)起來很簡單,但是也存在明顯的不足簡單的輪詢調(diào)度方法不考慮服務器的處理能力,顯然不適用于Web服務器集群系統(tǒng)中服務器處理性能不一致的情況。加權的輪詢調(diào)度方法考慮了服務器性能的不同,提高了調(diào)度的有效性,但存在公平性問題,有可能有的服務器負荷很重,而其他的服務器卻是空閑的,從而導致服務器之間的負載并不均衡。因此,對于輪詢類調(diào)度方法,除了要保持其實現(xiàn)簡單的優(yōu)點之外, 還需要有相應的機制來保證它們的公平性,確保Web服務器之間的負載均衡。

      發(fā)明內(nèi)容
      為了解決現(xiàn)有Web服務器集群系統(tǒng)的負載均衡存在的上述技術問題,本發(fā)明提供的一種公平性好的輪詢調(diào)度負載均衡方法。采用本發(fā)明所提供的方法,在保持輪詢類調(diào)度方法實現(xiàn)簡單的基礎上,提高了 Web服務器集群系統(tǒng)的公平性,特別是避免了權值低的服務器可能長時間得不到應用的情形。本發(fā)明解決上述技術問題的技術方案包括以下步驟
      (1)當Web請求服務隊列為空時,即沒有用戶訪問Web服務器集群系統(tǒng),則服務器調(diào)度模塊進入等待Web請求到達的狀態(tài);否則,繼續(xù);
      (2)將活動服務器列表中每個服務器的Web請求計數(shù)器置為0;
      (3)將活動服務器列表中服務器的個數(shù)置于訪問服務器計數(shù)器;
      (4)計算出活動服務器列表每個服務器的剩余權值,取其中的最小權值為Wmin;
      (5)選擇活動服務器列表中的第一個服務器,從Web請求服務隊列中分配一個Web請求給該服務器進行處理;服務器的Web請求計數(shù)器加1,剩余權值減少1 ;
      (6)判斷Web請求服務隊列是否為空,如果是,執(zhí)行步驟(1);否則,繼續(xù);
      (7)判斷服務器的剩余權值是否為0,如果是,將服務器從活動服務器列表中刪除,執(zhí)行步驟(11);否則,繼續(xù);
      (8)判斷Web請求計數(shù)器是否小于最小權值Wmin,如果是,繼續(xù);否則,執(zhí)行步驟(10);
      (9)繼續(xù)從Web請求服務隊列中分配一個Web請求給該服務器進行處理,服務器的Web 請求計數(shù)器加1,剩余權值減少1 ;執(zhí)行步驟(6);
      (10)將所選擇的服務器移到活動服務器列表的尾部;
      (11)訪問服務器計數(shù)器減1;
      (12)判斷訪問服務器計數(shù)器是否為0,如果是,繼續(xù);否則,執(zhí)行步驟(5);
      (13)執(zhí)行步驟(2)。本發(fā)明的技術效果在于本發(fā)明中每個輪次中都按活動服務器中的最小剩余權值為每一個服務器分配負載,從而具有較好的公平性,可以實現(xiàn)更有效的負載均衡。另外,最小剩余權值不是固定不變的,每個輪次開始前都要重新選取最小剩余權值,因此本發(fā)明是一種動態(tài)權值的輪詢調(diào)度負載均衡方法,具有復雜度低、效率高、容易實現(xiàn)的優(yōu)點。下面結合附圖和具體實施例對本發(fā)明作進一步的說明。


      圖1本發(fā)明中Web請求、Web請求服務隊列、服務器調(diào)度模塊、服務器之間的關系示意圖。圖2本發(fā)明實施例中,第1輪次的服務器調(diào)度情形示意圖,左邊部分是本輪次中分配給服務器處理的Web請求,右邊部分是經(jīng)過本輪次調(diào)度后,服務器的剩余權值。圖3本發(fā)明實施例中,第2輪次的服務器調(diào)度情形示意圖。圖4本發(fā)明實施例中,第3輪次的服務器調(diào)度情形示意圖。圖5本發(fā)明實施例中,第4輪次的服務器調(diào)度情形示意圖。圖6本發(fā)明實施例中,經(jīng)過4個輪次后,四個服務器所處理的Web請求以及剩余權值的示意圖。圖7服務器調(diào)度過程流程圖。
      具體實施例方式本發(fā)明所提供的一種公平性好的Web服務器集群系統(tǒng)輪詢調(diào)度負載均衡方法,其特征是它包括初始化過程、Web請求排隊過程和服務器調(diào)度過程。初始化過程包括根據(jù)每個服務器的性能給定其一個權值;當有Web請求時,對服務器調(diào)度模塊進行初始化。Web請求排隊過程是指當一個新的訪問請求到達時,進入到隊列中排隊,等候分配服務器對其進行處理。服務器調(diào)度過程描述的是怎樣從Web服務器集群系統(tǒng)中選擇一個服務器,然后將隊列中的Web請求分配給所選取的服務器進行處理。
      所述的輪詢調(diào)度負載均衡方法,給Web服務器集群系統(tǒng)中每一個服務器分配一個權值 (Weight),表示服務器的處理性能。當一個服務器的權值(即服務器的處理能力)沒有用完時,即剩余的權值大于0,稱服務器是活動的(Active)。將集群系統(tǒng)中所有活動的服務器放到一個列表中,稱為“活動服務器列表”。當一個服務器的權值用完時,即剩余的權值已等于 0,則服務器由活動的變成非活動的(Inactive),這時將該服務器從“活動服務器列表”中刪除。如果一個服務器由非活動的變成活動的,則將該服務器加入到“活動服務器列表”的尾部。所述的輪詢調(diào)度負載均衡方法,將發(fā)往Web服務器集群系統(tǒng)的Web請求放在一個列隊中,這個隊列稱為“Web請求服務隊列”,調(diào)度模塊將按先來先服務原則從隊列中提取 Web請求。所述的輪詢調(diào)度負載均衡方法,定義一個輪次(Round)是某一時刻Tl (T1>0),“活動服務器列表”中所包含的服務器被服務器調(diào)度模塊訪問的過程。在本輪次執(zhí)行過程中,重新成為活動的服務器可以加入到“活動服務器列表”的尾部,但將從下一輪次開始被訪問。 在一個輪次中,被訪問服務器能夠接受的Web請求負荷不超過本輪次中所有服務器剩余權值的最小值。所述的輪詢調(diào)度負載均衡方法,為了表示一個輪次中所需要訪問的服務器的數(shù)目,引入一個計數(shù)器記錄服務器的數(shù)目,這個計數(shù)器稱為“訪問服務器計數(shù)器”,表示在一個輪次開始時“活動服務器列表”中服務器的數(shù)量。每當服務器調(diào)度模塊訪問一個服務器,“訪問服務器計數(shù)器”就減少1,當“訪問服務器計數(shù)器”最終等于0時,就說明這個輪次結束。所述的輪詢調(diào)度負載均衡方法,用一個計數(shù)器記錄一個服務器在一個輪次中總共接收的Web請求數(shù),這個計數(shù)器稱為“Web請求計數(shù)器”,每個服務器都有一個“Web請求計數(shù)器”。在一個輪次開始前,“Web請求計數(shù)器”的初值為0,然后每接收一個Web請求,就將 “Web請求計數(shù)器”加1。本發(fā)明所提供的Web服務器集群系統(tǒng)輪詢調(diào)度負載均衡方法中,Web請求、Web請求服務隊列、服務器調(diào)度模塊、服務器之間的關系如圖1所示。當一個Web請求1到達服務器集群系統(tǒng)時,首先進入到Web請求服務隊列2中排隊,等候處理。服務器調(diào)度模塊3使用本發(fā)明的輪詢調(diào)度負載均衡方法4來調(diào)度服務器,在η (η為大于0的自然數(shù))個服務器5 中選擇一個服務器,對Web請求服務隊列2中的Web請求進行處理,使服務器5的資源得到公平分配,實現(xiàn)高效的負載均衡。為了表述更直觀,用ActivekrverList表示“活動服務器列表”,是所有活動的服務器的列表。當一個服務器由活動的變成非活動的時,該服務器將從ActivekrverList中移走。當一個服務器由非活動的變成活動的時,該服務器將加入到ActivekrverList的尾部。一個輪次中服務器的確定現(xiàn)考慮輪次1的開始時間是Tl,結束時間是T2 (Τ2ΧΓ1)。在Tl時刻,ActiveServerList中包含服務器-1、服務器-2、服務器-3等三個服務器,那么在輪次1,服務器調(diào)度模塊將訪問上述的三個服務器。在T1、T2之間,服務器-4變成活動的并加入到了 ActiveServerList,但服務器調(diào)度模塊不會在輪次1訪問服務器_4, 因為服務器-4在輪次1開始時刻Tl不在ActivekrverList中。定義輪次2在T2時刻開始,在輪次2中,服務器調(diào)度模塊將訪問T2時刻ActivekrverList中的服務器,即訪問服務器-1、服務器_2、服務器_3、服務器-4。另外,第幾輪次是相對于某個服務器來講的,如從T2開始的輪次,對于服務器-1、服務器_2、服務器-3來說,是第2輪次,但對于服務器-4 來說,是第1輪次。為了表述更直觀,用VisitServerCount表示“訪問服務器計數(shù)器”,是在一個輪次開始時ActivekrverList列表中服務器的數(shù)量。每當服務器調(diào)度模塊完成對一個服務器的訪問,VisitkrverCount就減少1,當VisitServerCount最終等于O時,就說明這個輪次結束。為了表述更直觀,用RequestCoimt表示“Web請求計數(shù)器”,是一個服務器在一個輪次中所接收的Web請求數(shù)。用RequeStCoimti表示服務器_i (1 < i < n,i為自然數(shù)) 的“Web請求計數(shù)器”;用RequestCoimt , (r)表示在第r輪次中服務器_i所接收的Web請求數(shù)。為了表述更直觀,用UnusedW表示服務器的剩余權值,是一個服務器由于處理Web 請求而剩余的處理能力,當服務器空閑時,它的剩余權值就是它的權值,即它的全部處理能力。用UnusedW i表示服務器-i (1彡i彡n,i為自然數(shù))還沒有被使用的處理能力,即服務器_i的剩余權值。下面結合實施例來說明本發(fā)明所提供的輪詢調(diào)度負載均衡方法,實施例中有四個服務器服務器-1、服務器-2、服務器-3、服務器-4 ;有20個Web請求需要Web服務器集群系統(tǒng)進行處理,分用 Rl、R2、R3、R4、R5、R6、R7、R8、R9、RIO、Rll、R12、R13、R14、R15、R16、 R17、R18、R19、R20表示,其中Rl最先到達,R20最后到達。一、初始化過程
      這是服務器調(diào)度模塊進行初始化的過程,包括以下一些操作 根據(jù)服務器的性能為每個服務器分配一個權值,服務器-i的權值用Wi (1 < i < n,i 為自然數(shù))表示,本實施例中n=4,四個服務器的權值分別為W1=KK W2=7、W3=3、ff4=2 (本實施例中是以Web請求數(shù)作為權值和負載的衡量單位,如果權值、負載大小是以其他的度量值來衡量,本發(fā)明同樣適用,亦屬于本發(fā)明所涵蓋范圍之內(nèi))。由于四個服務器的權值都大于0,所以四個服務器都是活動的,于是,四個服務器都加入到ActivekrverList中,得到 ActiveServerList= {服務器_1,服務器_2,服務器_3,服務器-4}。VisitServerCount 的初值賦值為 O。RequestCounti的初值賦值為0,1 < i < n,本實施例中n=4 ; 二、Web請求排隊過程
      本實施例中,有 Rl、R2、R3、R4、R5、R6、R7、R8、R9、RIO、RlU R12、R13、R14、R15、R16、 R17、R18、R19、R20等20個Web請求進入到了 “Web請求服務隊列”中,正在等候分配服務器對它們進行處理。三、服務器調(diào)度過程
      服務器調(diào)度模塊開始對ActivekrverList中的服務器進行訪問,選擇一個服務器對 “Web請求服務隊列”中的Web請求進行處理。開始時,首先判斷“Web請求服務隊列”是否為空,本實施例中,“Web請求服務隊列”中有20個Web請求,非空。這時,ActiveServerList=I服務器_1,服務器_2, 服務器-3,服務器-4},將ActiveServerList中每個服務器的RequstCount置為O,即 RequestCounti=O, 1 彡 i 彡 4。VisitServerCount=ActiveServerList 中服務器的個數(shù)=4, 進入四個服務器的第1輪次
      四個服務器的剩余權值分別為=UnusedW1=KK UnusedW2=7、Unusedffs=3, UnusedW4=2,其中的最小權值Wmin=2。因為服務器-1是ActivekrverList中的第一個服務器,所以選擇服務器_1 對“flfeb請求服務隊列”中的第一個W^eb請求Rl進行處理。RegustCountfCHPl, UnusedW1=IO-I=L 因為 UnusedW1X), RequstCount^ffmin,所以繼續(xù)從“Web 服務請求隊列”中分配 Web 請求 R2 由服務器-1 處理,這時,RequstCount1=l+l=2, Unusedff1=Q-I=S0 由于 UnusedW1X), RequstCount1=Wmin,于是將服務器 _1 移到 ActiveServerList 的尾部,ActiveServerList=I服務器_2,服務器_3,服務器_4,服務器-1}。 VisitServerCount=4-l=3。繼續(xù)選擇ActivekrverList中的第一個服務器即服務器_2,對“Web服務請求隊列”中的 Web 請求 R3 進行處理,有 RequstCount2=0+l=l,UnusedW2=7_l=6。因為 UnusedW2>0, ReqUStC0imt2<Wmin,所以繼續(xù)從“Web服務請求隊列”中分配Web請求R4由服務器_2處理, 這時,RequstCount2=l+l=2,UnusedW2=6-l=50 由于 Unusedff2>0, RequstCount2=Wmin,于是將服務器-2移到ActivekrverList的尾部,ActiveServerList= {服務器_3,服務器_4,服務器-1,服務器-2}。VisitServerCount=3-l=2。
      繼續(xù)選擇ActivekrverList中的服務器_3,對“Web服務請求隊列”中的 Web 請求 R5 進行處理,有 RequstCount3=0+l=l,UnusedW3=3_l=2。因為 UnusedW3>0, ReqUStC0imt3<Wmin,所以繼續(xù)從“Web服務請求隊列”中分配Web請求R6由服務器_3處理, 這時,RequstCount3=l+l=2,UnusedW3=2-l=l。由于 Unusedff3>0, RequstCount3=Wmin,于是將服務器"3移到ActiveServerList的尾部,ActiveServerList= {服務器_4,服務器_1,服務器 _2,服務器-3}。VisitServerCount=2-l=l。繼續(xù)選擇ActivekrverList中的服務器_4,對“Web服務請求隊列”中的 Web 請求 R7 進行處理,有 RequstCount4=0+l=l,UnusedW4=2_l=l。因為 UnusedW4>0, RequstCount4<fffflin,所以繼續(xù)從“Web服務請求隊列”中分配Web請求R8由服務器_4處理,這時,RequstCount4=l+l=2,UnusedW4=I-I=O。由于 UnusedW4=O,于是將服務器 _4 從 ActiveServerList 中刪除,ActiveServerList=I 服務器 _1,服務器 _2,服務器-3}。 Vi sitServerCount=l_l=0οVisitServerCount=O說明輪次1已經(jīng)結束,第1輪次的服務器調(diào)度情形如圖2所
      7J\ ο下面進入第2輪次
      ActiveServerList= {服務器 _1,服務器 _2,服務器- ,將 ActivekrverList 中每個服務器的 RequstCount 置為 0,即 RequestCounti=O, 1 彡 i 彡 3。VisitServerCount=Activ eServerList中服務器的個數(shù)=3,三個服務器的剩余權值分別為=UnusedW1=SAUnusedW2=S, Unusedff3=I,其中的最小權值Wmin=I。因為服務器-1是ActivekrverList中的第一個服務器,所以選擇服務器_1對 "Web 請求服務隊列”中的 Web 請求 R9 進行處理。RequstCountpO+lzl,Unusedff1=S-I=T0 因為 UnusedW1X), RequstCount1=Wmin,于是將服務器 _1 移到 ActiveServerList 的尾部, ActiveServerList= {服務器 _2,服務器 _3,服務器-1}。VisitServerCount=3_l=2。繼續(xù)選擇ActivekrverList中的第一個服務器即服務器_2,對“Web服務請求隊列”中的Web請求RlO進行處理,有RequstCount2=0+l=l,UnusedW2=5_l=4。因為 UnusedW2>0,RequstCount2=Wmin,于是將服務器 _2 移到 ActiveServerList 的尾部, ActiveServerList= {服務器 _3,服務器-1,服務器-2}。VisitServerCount=2-l=l。繼續(xù)選擇ActivekrverList中的服務器_3,對“Web服務請求隊列”中的Web 請求 Rll 進行處理,有 RequstCount3=0+l=l,UnusedW3=I-I=O。由于 UnusedW3=O,于是將服務器-3 /AActiveServerList 中刪除,Activ必erverList={服務器-1,服務器 _2}。 Vi SitServerCount=I-I=O οVisitServerCount=O說明輪次2已經(jīng)結束,第2輪次的服務器調(diào)度情形如圖3所
      7J\ ο下面進入第3輪次
      ActiveServerList=I服務器_1,服務器-2},將ActiveServerList中每個服務器的 RequstCount 置為 O,艮口 RequestCounti=O, 1 < i < 2。VisitServerCount=ActiveServerL ist中服務器的個數(shù)=2,兩個服務器的剩余權值分別為=UnUsedW1= 、UnuSedW2=4,其中的最小權值Wmin=4。因為服務器-1是ActivekrverList中的第一個服務器,所以選擇服務器_1對“Web 請求服務隊列”中的 Web 請求 R12 進行處理。RegustCountfCHlZl, Unusedff1=T-I=B0 因為UnusedW1X), RequstCount^ffmin,所以繼續(xù)從“Web服務請求隊列”中分配Web請求 R13 由服務器-1 處理,這時,RequstCount1=l+l=2, UnusedW1=6-1=5。因為 UnusedW1X), RequstCount^fffflin,所以繼續(xù)從“Web服務請求隊列”中分配Web請求R14由服務器_1處理,這時,RequstCount1=2+l=3, UnusedW1=S-I=L 因為 UnusedW1X), RequstCount^ffmin, 所以繼續(xù)從“Web服務請求隊列”中分配Web請求R15由服務器-1處理,這時, RequstCount1=3+l=4, UnusedW1=^l=S0 由于 UnusedW1X), RequstCount1=Wmin,于是將服務器-1 移到 ActivekrverList 的尾部,ActiveServerList=I 服務器 _2,服務器 _1}。 VisitServerCount=2-l=l。繼續(xù)選擇ActivekrverList中的第一個服務器即服務器_2,對“Web服務請求隊列”中的 Web 請求R16 進行處理,有 RequstCount2=0+l=l,UnusedW2=4_l=3。因為 UnusedW2>0, RequstCount2<fffflin,所以繼續(xù)從“Web服務請求隊列”中分配Web請求R17由服務器_2處理, 這時,RequstCount2=l+l=2,UnusedW2=3_l=2。因為 UnusedW2>0,RequstCount2<Wmin,所以繼續(xù)從“Web服務請求隊列”中分配狗13請求R18由服務器-2處理,這時,RequStC0unt2=2+l=3, UnusedW2=2-l=l。因為 UnusedW2>0,RequstCount2<Wmin,所以繼續(xù)從“Web 服務請求隊列” 中分配 Web 請求 R19 由服務器-2 處理,這時,RequstCount2=3+l=4, UnusedW2=I-I=O。由于 UnusedW2=O,于是將服務器 _2 從 ActiveServerList 中刪除,ActiveServerList= {服務器-1}ο VisitServerCount=l_l=0oVisitServerCount=O說明輪次3已經(jīng)結束,第3輪次的服務器調(diào)度情形如圖4所
      7J\ ο下面進入第4輪次
      ActiveServerList= {服務器-1},將 ActiveServerList 中每個服務器的 RequstCount 置為 0,即 RequestCount1=O。VisitServerCount=ActiveServerList 中服務器的個數(shù)=1, 服務器-1的剩余權值為=UnusedW1=S,最小權值Wmin=3。由服務器-1對“Web請求服務隊列”中的Web請求R20進行處理。 RegustCountfCHl=!, UnusedW1=S-I=Z。由于“Web請求服務隊列”已經(jīng)為空,說明已沒有Web 請求需要處理,于是,服務器調(diào)度模塊進入到等待Web請求到達的狀態(tài)。第4輪次的服務器調(diào)度情形如圖5所示。如上所述的實施例所實現(xiàn)的Web服務器集群系統(tǒng)調(diào)度過程,只是描述了在給定實施例的情況下,執(zhí)行本發(fā)明所述的輪詢調(diào)度負載均方法的開始的4個輪次,經(jīng)過4個輪次后,四個服務器所處理Web請求以及剩余的權值如圖6所示。本發(fā)明所述的服務器輪詢調(diào)度負載均衡方法,對Web請求數(shù)量、服務器數(shù)量、輪次的多少是沒有限制的,一旦有Web請求到達,服務器調(diào)度模塊還將繼續(xù)往下執(zhí)行服務器調(diào)度,對Web請求進行處理。服務器調(diào)度過程的流程如圖7所示。以上實施例說明的就是本發(fā)明所提供的一種Web服務器集群系統(tǒng)輪詢調(diào)度負載均衡方法的具體實施方式
      。本發(fā)明所提供的Web服務器負載均衡調(diào)度技術具有以下優(yōu)點 (1)每個輪次都以活動服務器中的最小剩余權值來為服務器分配Web請求,相對于傳統(tǒng)的加權輪詢調(diào)度方法,具有更好的公平性,避免了有的服務器負載很重,而其他服務器有可能空閑的情形。如本發(fā)明中的實施例,如果按傳統(tǒng)的輪詢調(diào)度方法來調(diào)度服務器,結果是服務器-1、服務器-2和服務器-3都是滿負荷運行,而服務器-4卻是空閑的。因此,使用本發(fā)明所提供的負載均衡方法可以充分利用集群系統(tǒng)中每個服務器的資源,只要一個服務器在一個輪次中是活動的,至少都有一個Web請求分配給它進行處理,這樣就避免了服務器長時間得不到使用的情況,因而具有更好的負載均衡效果。(2)本發(fā)明所提供的是一種動態(tài)權值的輪詢調(diào)度方法,每個輪次中所使用的最小權值不是固定不變的,而是根據(jù)服務器的負載情況而確定,當活動服務器的剩余權值都比較高時,就會給每個服務器分配更多Web請求,提高了調(diào)度的靈活性。(3)在負載均衡方法的Web請求排隊過程、服務器添加到ActivekrverList中、給變量賦初值等操作,都可以在0(1)的時間復雜度中完成。在服務器調(diào)度過程中,包括了從 ActiveServerList的首部移出一個服務器、在ActivekrverList的尾部添加一個服務器、 更新變量(VisitkrverCounlRequesCounti、UnusedWi)的值等操作,這些操作都可以在常數(shù)時間內(nèi)完成。因此,本發(fā)明所提供的Web服務器集群系統(tǒng)輪詢調(diào)度負載均衡方法,保持了輪詢類調(diào)度方法的優(yōu)點,復雜度低、效率高、容易實現(xiàn)。
      權利要求
      1. 一種公平性好的Web服務器集群系統(tǒng)輪詢調(diào)度負載均衡方法,包括以下步驟(1)當Web請求服務隊列為空時,即沒有用戶訪問Web服務器集群系統(tǒng),則服務器調(diào)度模塊進入等待Web請求到達的狀態(tài);否則,繼續(xù);(2)將活動服務器列表中每個服務器的Web請求計數(shù)器置為0;(3)將活動服務器列表中服務器的個數(shù)置于訪問服務器計數(shù)器;(4)計算出活動服務器列表每個服務器的剩余權值,取其中的最小權值為Wmin;(5)選擇活動服務器列表中的第一個服務器,從Web請求服務隊列中分配一個Web請求給該服務器進行處理;服務器的Web請求計數(shù)器加1,剩余權值減少1 ;(6)判斷Web請求服務隊列是否為空,如果是,執(zhí)行步驟(1);否則,繼續(xù);(7)判斷服務器的剩余權值是否為0,如果是,將服務器從活動服務器列表中刪除,執(zhí)行步驟(11);否則,繼續(xù);(8)判斷Web請求計數(shù)器是否小于最小權值Wmin,如果是,繼續(xù);否則,執(zhí)行步驟(10);(9)繼續(xù)從Web請求服務隊列中分配一個Web請求給該服務器進行處理,服務器的Web 請求計數(shù)器加1,剩余權值減少1 ;執(zhí)行步驟(6);(10)將所選擇的服務器移到活動服務器列表的尾部;(11)訪問服務器計數(shù)器減1;(12)判斷訪問服務器計數(shù)器是否為0,如果是,繼續(xù);否則,執(zhí)行步驟(5);(13)執(zhí)行步驟(2)。
      全文摘要
      本發(fā)明公開了一種公平性好的Web服務器集群系統(tǒng)輪詢調(diào)度負載均衡方法。本發(fā)明每個輪次中都由服務器調(diào)度模塊按活動服務器中的最小剩余權值為每一個服務器分配負載,由于最小剩余權值不是固定不變的,每個輪次開始前都要重新選取最小剩余權值,這樣具有較好的公平性,可以實現(xiàn)更有效的負載均衡。本發(fā)明在保持輪詢類調(diào)度方法實現(xiàn)簡單的基礎上,提高了Web服務器集群系統(tǒng)的公平性,特別是避免了權值低的服務器可能長時間得不到應用的情形,具有復雜度低、效率高、容易實現(xiàn)的優(yōu)點。
      文檔編號H04L29/08GK102497421SQ20111041085
      公開日2012年6月13日 申請日期2011年12月12日 優(yōu)先權日2011年12月12日
      發(fā)明者劉桂開, 鄧茜, 高蕾 申請人:湖南科技大學
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1