TWI414161B - 負載分配方法 - Google Patents

負載分配方法 Download PDF

Info

Publication number
TWI414161B
TWI414161B TW100103271A TW100103271A TWI414161B TW I414161 B TWI414161 B TW I414161B TW 100103271 A TW100103271 A TW 100103271A TW 100103271 A TW100103271 A TW 100103271A TW I414161 B TWI414161 B TW I414161B
Authority
TW
Taiwan
Prior art keywords
load distribution
server
stage
amount
load
Prior art date
Application number
TW100103271A
Other languages
English (en)
Other versions
TW201233097A (en
Inventor
Der Cherng Liaw
Original Assignee
Univ Nat Chiao Tung
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Univ Nat Chiao Tung filed Critical Univ Nat Chiao Tung
Priority to TW100103271A priority Critical patent/TWI414161B/zh
Priority to US13/353,634 priority patent/US20120198074A1/en
Publication of TW201233097A publication Critical patent/TW201233097A/zh
Application granted granted Critical
Publication of TWI414161B publication Critical patent/TWI414161B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)

Description

負載分配方法
本發明係關於一種負載分配方法,詳而言之,係涉及一種處理網路系統中資訊流量之負載分配方法。
隨著科技進步,網路已成為現代社會的重要技術。隨著網路人口逐漸增加,對於回應客戶端請求之伺服器的網路負載亦隨之增加。
以往的伺服器容易負載過大,例如,請參閱第1圖,其為習知技術之伺服器負載平衡方法的流程圖。於步驟S11中,設定每一個伺服器的流量警戒值,接著於步驟S12中,負載平衡器將所接收之客戶端請求平均分配至每一個伺服器。其次,於步驟S13中,當其中一個伺服器的負載達到其流量警戒值時,該伺服器發出一通知至該負載平衡器,以通知該負載平衡器莫再將客戶端請求分配至該伺服器,而應將客戶端請求分配至其餘的伺服器。
然而,上述將客戶端請求平均分配至每一個伺服器的機制,即使該客戶端請求的數量很少時仍須啟動所有的伺服器,如此會增加伺服端的耗能,此外,伺服器的流量警戒值為負載平衡器進行負載平衡時絕對不能超越的界線,因此若每一個伺服器的負載皆到達其流量警戒值時,客戶端一方便呈現完全無法連線的狀態,需排隊等其中之一連線結束才可能清出負載空間。另外,伺服器亦可能因為流量警戒值設定不良而造成過載、當機或斷線,使系統整體效率下降。
故,如何提出一種負載分配方法,能讓複數個伺服器達到負載平衡,以防止伺服器過載,並紓解客戶端連線塞車的狀況,是為目前亟待解決的問題之一。
為解決前述習知技術的問題,本發明提供一種負載分配方法,係應用於網路系統中,以對複數個伺服器進行負載分配。
本發明之負載分配方法,係由負載分配裝置對複數個伺服器進行負載分配,包括以下步驟:(1)依據各該伺服器的滿載量計算各該伺服器的第一階段的最大負載分配量,並進行第一階段的負載分配;(2)判斷各該伺服器於該第一階段所分配到的實際分配量是否滿足各該伺服器的該第一階段的最大負載分配量,若否,則返回步驟(1)後半部所述之負載分配步驟,持續對該複數個伺服器進行該第一階段的負載分配,若是,進至步驟(3);(3)計算各該伺服器的次一階段的最大負載分配量,並進行該次一階段的負載分配;以及(4)判斷各該伺服器於該次一階段所分配到的實際分配量是否滿足各該伺服器的該次一階段的最大負載分配量,若否,則返回步驟(3)後半部所述之負載分配步驟,持續對該複數個伺服器進行該次一階段的負載分配,若是,則計算各該伺服器再次一階段的最大負載分配量,並對該複數個伺服器進行該再次一階段的負載分配,其中,各該伺服器的每一階段的最大負載分配量小於或等於其前一階段的最大負載分配量,且各該伺服器的每一階段的最大負載分配量之累計總和小於或等於各該伺服器的滿載量。
於一實施形態中,各該伺服器的第一階段的最大負載分配量為各該伺服器的滿載量的倍,其中,M為可變參數。此外,各該伺服器的滿載量係依據其CPU的運作能力、記憶體的空間大小、硬碟運轉狀態及/或伺服器負載連接數量而計算。
於另一實施形態中,各該伺服器的每一階段的最大負載分配量係為其前一階段的負載分配量的倍,其中,N為可變參數。
於一較佳實施形態中,前述該M及N均為2。
相較於習知技術,本發明之負載分配方法能避免習知技術中,當客戶端請求為少量時仍啟用多個伺服器而導致增加耗能的缺失,進而達成複數個伺服器負載平衡之功效。
以下藉由特定的具體實施形態說明本發明之實施方式,熟悉此技術之人士可由本說明書所揭示之內容輕易地了解本發明之其他優點與功效,亦可藉由其他不同的具體實施形態加以施行或應用。
請參閱第2圖,本發明之負載分配方法包括步驟S21至S27。
於步驟S21中,依據各個伺服器的滿載量計算各該伺服器第一階段的最大負載分配量,並對各該伺服器進行第一階段的負載分配。詳言之,係由負載分配裝置來決定各該伺服器第一階段的最大負載分配量。於一實施形態中,伺服器的第一階段的最大負載分配量可為伺服器的滿載量的倍,其中,M為可變參數。於一較佳實施形態中,M可為2。此外,伺服器的滿載量可依據其CPU的運作能力、記憶體的剩餘空間大小、硬碟運轉狀態等其他因素來計算。接著進至步驟S22。
於步驟S22中,判斷各該伺服器於該第一階段所分配到的實際分配量是否滿足各該伺服器的該第一階段的最大負載分配量。換言之,負載分配裝置於第一階段分配給各該伺服器的負載限制為伺服器的滿載量的倍,並判斷各該伺服器於該第一階段所分配到的實際分配量是否滿足各該伺服器的該第一階段的最大負載分配量。若否,則進至步驟S23,若是,則進至步驟S24。
於步驟S23中,持續進行負載分配。接著返回步驟S22以進行判斷。
於步驟S24中,計算各該伺服器次一階段的最大負載分配量,並對各該伺服器進行次一階段的負載分配,其中,該次一階段的最大負載分配量係小於或等於該第一階段的最大負載分配量,且該第一階段和該次一階段的最大負載分配量之累計總和係小於或等於伺服器的滿載量。於一實施形態中,各該伺服器的第一階段的最大負載分配量為各該伺服器的滿載量的倍,該次一階段的最大負載分配量為第一階段的最大負載分配量的倍,其中,N為可變參數,或N等於M。接著進至步驟S25。
於步驟S25中,判斷各該伺服器於該次一階段所分配到的實際分配量是否滿足各該伺服器的該次一階段的最大負載分配量。換言之,當M等於N時,負載分配裝置於次一階段分配給各該伺服器的負載限制為伺服器的滿載量的倍,或者當M不等於N時為倍,並判斷各該伺服器於該次一階段所分配到的實際分配量是否滿足各該伺服器於該次一階段的最大負載分配量。若否,則進至步驟S26,若是,則進至步驟S27。
於步驟S26中,持續進行負載分配。接著返回步驟S25以進行判斷。
於步驟S27中,計算各該伺服器之再次一階段的最大負載分配量,並對各該伺服器進行再次一階段的負載分配。以此類推,由於每一階段的最大負載分配量皆小於或等於其前一階段的最大負載分配量,且每一階段的最大負載分配量之累計總和係小於或等於伺服器的滿載量,因而各個伺服器的負載永遠不會超過其滿載。
另外,於進行負載分配時,該負載分配裝置可監測該複數個伺服器,以記錄該複數個伺服器的每一階段的最大負載分配量及取得該複數個伺服器的每一階段的實際分配量。另外,該負載分配裝置亦可依據不同狀態(例如依據不同伺服器的硬體效能)個別設定或計算各該伺服器每一階段的最大負載分配量。
此外,上述步驟S21、S23、S24、S26及S27中進行負載分配的步驟係指該負載分配裝置依據所接收到的用戶端請求將負載平均分配、隨機分配或依不同狀態個別分配至該複數個伺服器。另外,該負載分配裝置依據所接收到的客戶端請求,可將負載依序分配或選擇分配至該複數個伺服器。再者,當某一階段中各該伺服器皆有分配到負載而該負載分配裝置繼續進行負載分配時,當其中一個伺服器的實際分配量下降至低於預定的判斷值時,令該負載分配裝置將所接收到的客戶端請求優先分配給該伺服器,其中,該預定的判斷值可為由負載分配裝置當初所決定之該階段的最大負載分配量。
接著以第3圖及第4圖說明本發明之一具體實施形態。第3圖為本發明之負載分配方法之具體實施示意圖。第4圖為本發明之負載分配方法之具體實施流程圖。
如第3圖所示,複數個客戶端4所發出的客戶端請求經網路傳輸至負載分配裝置3,接著負載分配裝置3依據所接收的客戶端請求將對應的負載分配至各個伺服器5,再由各伺服器5依據所分配到的負載提供相對應的服務至客戶端4。負載分配裝置3將負載分配至複數個伺服器5的詳細流程如第4圖所示。
於步驟S31中,計算或設定各個伺服器第一階段的最大負載分配量(係為各個伺服器的滿載量的倍),並依據所接收到的用戶端請求對各該伺服器進行第一階段的負載分配。接著進至步驟S32。
於步驟S32中,判斷各該伺服器於該第一階段所分配到的實際分配量是否滿足各該伺服器的滿載量的倍。若否,則進至步驟S33,若是,則進至步驟S34。換言之,若各該伺服器於第一階段時的總負載(實際分配量)達到各該伺服器的滿載量的倍時,進至步驟S34。
於步驟S33中,持續進行負載分配。接著返回步驟S32。
於步驟S34中,計算或設定各該伺服器第二階段的最大負載分配量(係為伺服器的滿載量的倍,亦即令前述之可變參數N=M,故第一階段的最大負載分配量=‧(滿載量),第二階段的最大負載分配量=(滿載量)=‧(滿載量)),並依據所接收到的用戶端請求對各該伺服器進行第二階段的負載分配。接著進至步驟S35。
於步驟S35中,判斷各該伺服器於該第二階段所分配到的實際分配量是否滿足各該伺服器的滿載量的倍。若否,則進至步驟S36,若是,則進至步驟S37。換言之,若各該伺服器於第二階段時的總負載達到各該伺服器的滿載量的倍時,進至步驟S37。
於步驟S36中,持續進行負載分配。接著返回步驟S35。
於步驟S37中,計算各該伺服器第三階段的最大負載分配量(係為伺服器的滿載量的倍),並依據所接收到的用戶端請求對各該伺服器進行第三階段的負載分配。直到各該伺服器於第三階段時的總負載達到各該伺服器的滿載量的倍時,計算第四階段的最大負載分配量,以此類推。
由上述第3及4圖所述之具體實施形態可知,負載分配裝置將客戶端請求分配至複數個伺服器,其各階段的最大負載分配量係小於或等於其前一階段的最大負載分配量。例如,當N=M時,各階段的最大負載分配量可依次為滿載量的倍,使得伺服器每一階段的最大負載分配量之累計總和依次為滿載量的 倍。又例如,當N=M=2時,各階段的最大負載分配量之變數依次為 ;當N=M=3時,各階段的最大負載分配量之變數可依次,則每一階段的最大負載分配量之累計總和不會超過伺服器的滿載量。
另外,當N≠M時,各階段的最大負載分配量之變數可依次為,或者 等其他數學式的運算變化。亦即,限制每一階段的最大負載分配量小於或等於其前一階段的最大負載分配量,且各階段的最大負載分配量之累計總和小於或等於伺服器的滿載量即可。如此一來,各伺服器的負載永遠不會超過自己的滿載。
綜上所述,本發明之負載分配方法,係計算各階段的最大負載分配量,並判斷伺服器於各該階段分配到的實際分配量是否滿足各該階段的最大負載分配量,且其中,每一階段的最大負載分配量係小於或等於其前一階段的最大負載分配量,且每一階段的最大負載分配量之累計總和係小於或等於滿載量。此外,該伺服器的第一階段的最大負載分配量較佳為伺服器的滿載值的倍,M係根據該伺服器的中央處理器(CPU)的運作能力、記憶體的空間大小、硬碟運轉狀態及/或伺服器負載連接數量或其他伺服器的相關資訊所計算之。因此,藉由本發明的運用,能使各個伺服器的負載平衡,更可提升客戶端連線效率。
上述實施形態僅例示性說明本發明之原理、特點及其功效,並非用以限制本發明之可實施範疇,任何熟習此項技藝之人士均可在不違背本發明之精神及範疇下,對上述實施形態進行修飾與改變。任何運用本發明所揭示內容而完成之等效改變及修飾,均仍應為下述之申請專利範圍所涵蓋。因此,本發明之權利保護範圍,應如後述之申請專利範圍所列。
3...負載分配裝置
4...客戶端
5...伺服器
S11~S13、S21~S27、S31~S37...步驟
第1圖係習知技術之負載平衡方法之流程圖;
第2圖係本發明之負載分配方法之流程圖;
第3圖係本發明之負載分配方法之實施形態之示意圖;以及
第4圖係本發明之負載分配方法之一實施形態之流程圖。
S21~S27...步驟

Claims (9)

  1. 一種負載分配方法,係由負載分配裝置對複數個伺服器進行負載分配,包括以下步驟:(1)依據各該伺服器的滿載量計算各該伺服器的第一階段的最大負載分配量,並進行該第一階段的負載分配;(2)判斷各該伺服器於該第一階段所分配到的實際分配量是否滿足各該伺服器的該第一階段的最大負載分配量,若否,則返回步驟(1)後半部所述之負載分配步驟,持續對該複數個伺服器進行該第一階段的負載分配,若是,進至步驟(3);(3)計算各該伺服器的次一階段的最大負載分配量,並進行該次一階段的負載分配;以及(4)判斷各該伺服器於該次一階段所分配到的實際分配量是否滿足各該伺服器的該次一階段的最大負載分配量,若否,則返回步驟(3)後半部所述之負載分配步驟,持續對該複數個伺服器進行該次一階段的負載分配,若是,則計算各該伺服器的再次一階段的最大負載分配量,並對該複數個伺服器進行該再次一階段的負載分配,其中,各該伺服器的每一階段的最大負載分配量小於或等於其前一階段的最大負載分配量,且各該伺服器的每一階段的最大負載分配量之累計總和小於或等於各該伺服器的滿載量。
  2. 如申請專利範圍第1項所述之負載分配方法,其中,於進行負載分配時,該負載分配裝置監測該複數個伺服器,以記錄該複數個伺服器的每一階段的最大負載分配量及取得該複數個伺服器的每一階段的實際分配量。
  3. 如申請專利範圍第1項所述之負載分配方法,其中,進行負載分配的步驟係為該負載分配裝置依據所接收到的用戶端請求,依序將負載分配至該複數個伺服器。
  4. 如申請專利範圍第1項所述之負載分配方法,其中,各該伺服器的滿載量,係依據各該伺服器的中央處理器的運作能力、記憶體的空間大小、硬碟運轉狀態或伺服器負載連接數量而計算。
  5. 如申請專利範圍第1項所述之負載分配方法,其中,各該伺服器的第一階段的最大負載分配量為各該伺服器的滿載量的倍。
  6. 如申請專利範圍第5項所述之負載分配方法,其中,M為可變參數。
  7. 如申請專利範圍第5項所述之負載分配方法,其中,各該伺服器的每一階段的最大負載分配量係為其前一階段的最大負載分配量的倍。
  8. 如申請專利範圍第7項所述之負載分配方法,其中,N為可變參數。
  9. 如申請專利範圍第1項所述之負載分配方法,其中,該負載分配裝置於某一階段持續進行負載分配時,若已受該階段負載分配之伺服器的實際分配量下降至低於預定的判斷值時,令該負載分配裝置將所接收到的客戶端請求優先分配給該伺服器。
TW100103271A 2011-01-28 2011-01-28 負載分配方法 TWI414161B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW100103271A TWI414161B (zh) 2011-01-28 2011-01-28 負載分配方法
US13/353,634 US20120198074A1 (en) 2011-01-28 2012-01-19 Load balancing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW100103271A TWI414161B (zh) 2011-01-28 2011-01-28 負載分配方法

Publications (2)

Publication Number Publication Date
TW201233097A TW201233097A (en) 2012-08-01
TWI414161B true TWI414161B (zh) 2013-11-01

Family

ID=46578332

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100103271A TWI414161B (zh) 2011-01-28 2011-01-28 負載分配方法

Country Status (2)

Country Link
US (1) US20120198074A1 (zh)
TW (1) TWI414161B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI509429B (zh) * 2013-11-26 2015-11-21 Inst Information Industry 負載分配裝置及其負載分配方法
US9535775B2 (en) 2014-04-03 2017-01-03 Industrial Technology Research Institute Session-based remote management system and load balance controlling method

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9819558B2 (en) * 2014-03-03 2017-11-14 Microsoft Technology Licensing, Llc Streaming query resource control
US10313246B2 (en) * 2016-07-28 2019-06-04 At&T Intellectual Property I, L.P. Distribution of network traffic to software defined network based probes
CN109413117B (zh) * 2017-08-15 2022-05-06 中兴通讯股份有限公司 分布式数据计算方法、装置、服务器及计算机存储介质
CN113242283B (zh) * 2021-04-29 2022-11-29 西安点告网络科技有限公司 一种服务器动态负载均衡方法、***、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6078943A (en) * 1997-02-07 2000-06-20 International Business Machines Corporation Method and apparatus for dynamic interval-based load balancing
US7181524B1 (en) * 2003-06-13 2007-02-20 Veritas Operating Corporation Method and apparatus for balancing a load among a plurality of servers in a computer system
US7231445B1 (en) * 2000-11-16 2007-06-12 Nortel Networks Limited Technique for adaptively distributing web server requests
US20090241176A1 (en) * 2008-03-21 2009-09-24 Microsoft Corporation Load balancing in server computer systems

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6601084B1 (en) * 1997-12-19 2003-07-29 Avaya Technology Corp. Dynamic load balancer for multiple network servers
US6985937B1 (en) * 2000-05-11 2006-01-10 Ensim Corporation Dynamically modifying the resources of a virtual server
US8171133B2 (en) * 2006-07-10 2012-05-01 Nec Corporation Management apparatus and management method for computer system
US8474000B2 (en) * 2010-08-17 2013-06-25 Hewlett-Packard Development Company, L.P. Managing upstream bandwidth
US20120151479A1 (en) * 2010-12-10 2012-06-14 Salesforce.Com, Inc. Horizontal splitting of tasks within a homogenous pool of virtual machines

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6078943A (en) * 1997-02-07 2000-06-20 International Business Machines Corporation Method and apparatus for dynamic interval-based load balancing
US7231445B1 (en) * 2000-11-16 2007-06-12 Nortel Networks Limited Technique for adaptively distributing web server requests
US7181524B1 (en) * 2003-06-13 2007-02-20 Veritas Operating Corporation Method and apparatus for balancing a load among a plurality of servers in a computer system
US20090241176A1 (en) * 2008-03-21 2009-09-24 Microsoft Corporation Load balancing in server computer systems

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI509429B (zh) * 2013-11-26 2015-11-21 Inst Information Industry 負載分配裝置及其負載分配方法
US9535775B2 (en) 2014-04-03 2017-01-03 Industrial Technology Research Institute Session-based remote management system and load balance controlling method

Also Published As

Publication number Publication date
TW201233097A (en) 2012-08-01
US20120198074A1 (en) 2012-08-02

Similar Documents

Publication Publication Date Title
CN104714851B (zh) 一种实现资源分配的方法及装置
TWI414161B (zh) 負載分配方法
CN109617986B (zh) 一种负载均衡方法及网络设备
JP5654022B2 (ja) 企業ネットワーク内の割り当てられたクラウドリソースの動的な負荷分散およびスケーリング
JP6671468B2 (ja) クラウドモニタリングに基づく負荷分散の最適化方法および装置
US10979491B2 (en) Determining load state of remote systems using delay and packet loss rate
JP5901024B2 (ja) コンテンツ配信に利用される動的バインド
US9277005B2 (en) Optimized consistent request distribution for balanced load distribution in a content delivery network
JP6881575B2 (ja) 資源割当システム、管理装置、方法およびプログラム
US20120233313A1 (en) Shared scaling server system
US10027760B2 (en) Methods, systems, and computer readable media for short and long term policy and charging rules function (PCRF) load balancing
US20230069240A1 (en) Dynamic cloning of application infrastructures
JP2016527780A (ja) リースエージェントシステム間での制作者システムの分配
JP2015011365A (ja) プロビジョニング装置、システム、プロビジョニング方法、および、プロビジョニングプログラム
JP5735899B2 (ja) サービス提供システム、ファイル更新方法、および分散管理装置
WO2019034091A1 (zh) 分布式数据计算的分配方法、装置、服务器及存储介质
JP2007179246A (ja) 計算機管理方法、計算機管理プログラム、および、計算機管理サーバ
WO2016173133A1 (zh) 一种实现负荷分担的方法、接口机、业务处理机及***
KR101758065B1 (ko) 부하분산 시스템, 그 제어방법 및 이를 수행하기 위한 기록매체
JP6325995B2 (ja) 分散システム、負荷分散方法及びプログラム
Yang et al. Enhancement of anticipative recursively adjusting mechanism for redundant parallel file transfer in data grids
CN108307206A (zh) 一种直播编码任务的分配方法及装置
Li et al. A dynamic load balancing algorithm based on consistent hash
JP6204287B2 (ja) 分散処理方法、処理サーバ、および、プログラム
GB2541981A (en) Measuring server availability and managing traffic in adaptive bitrate media delivery