(南京醫科大學附屬南京醫院(南京市第一醫院),210029)
試論網絡服務器的負載均衡實現
李 烜
(南京醫科大學附屬南京醫院(南京市第一醫院),210029)
文章首先對服務器負載均衡的基本概念進行了分析,并對負載均衡的類型以及算法分類進行了概述,然后研究了在集群系統網絡服務器中對負載狀態進行評價的方法以及對負載狀況進行獲取的手段,最后分析了網絡服務器實現負載均衡的幾點策略,值得重視。
網絡服務器;負載均衡;實現
在網絡技術不斷發展與完善的背景下,各類網站的訪問量呈現出了顯著增高的趨勢,在網絡服務器的運行過程中,負載的急速增長成為了影響網絡訪問質量與訪問速度的重要因素之一。為解決該問題,關鍵在于實現網絡服務器的負載均衡。通過引入負載均衡技術的方式,能夠將網絡服務系統自多臺服務器對稱運行的方式轉變為服務器集合運行。在這一集成系統當中,每臺服務器均具有等價地位,能夠獨立面向外部環境提供服務。除此以外,還能夠通過應用負載分擔技術的方式,將外界發送的請求數據據均勻分配至相應的服務器系統終端上。通過上述方式,能夠解決大量用戶同時段內并發訪問而出現的問題,確保網絡服務器訪問質量的理想。
1.1 負載均衡的含義
負載均衡以當前固有的網絡結構為基本依據,在基礎之上提供一種有效并且成本低廉的方法,能夠對網絡服務器的帶寬進行有效拓展,同時提高服務器吞吐量,是優化網絡服務器數據處理能力的重要手段之一,并且在改善網絡系統運行靈活性與適應性方面也有中藥的意義。實現負載均衡所需要完成的工作任務包括以下幾個方面:
其一,需要面向網絡服務器用戶提供更佳、更具人性化特點的訪問質量;
其二,需要進一步改善服務器響應速度,滿足用戶操作需求;
其三,需要提高網絡服務器以及其他資源的利用效率;
其四,需要將單個重負載的運算任務分解至多臺節點服務器上,并以并行方式進行處理,通過這種流程,能夠顯著提高網絡服務器系統的數據處理能力,確保最終結果能夠盡快的返回至用戶端;
在網絡服務器實現負載均衡的過程當中,負載均衡的工作機制可以劃分為兩種類型,分別為靜態模式下的負載均衡以及動態模式下的負載均衡。其中,前者是指根據預先確定的輪值方案,將任務按照方案要求分解至相應的節點當中,而后者則是指借助于一些工具軟件對數據包進行分解,從而準確評估網絡系統內的數據流量的真實狀況。
1.2 負載均衡類型及算法
在網絡服務器實現負載均衡的過程當中,算法會對負載均衡的實現情況產生非常直接的影響,當前技術支持下,實際應用中比較常見的算法有兩種類型,分別為靜態負載均衡算法以及動態負載均衡算法。其中,對于靜態算法而言,該算法適用于負載量能夠預知并且具有同構數據的集群系統,實際應用中具有操作簡便與靈活的特點;對于動態算法而言,該算法使用范圍相對較廣的網絡服務器集群系統,在應用中必須對服務器的使用情況以及對各個指令的執行情況進行收集,在開銷上明顯高于靜態算法,但其優勢是能夠對集群系統的負載情況進行實時性的反應,因此在具體應用中需要綜合考慮,選擇最佳的算法方案。
2.1 負載狀態評價分析
當前對于網絡服務器及其集成系統而言,在實現負載均衡過程當中應用技術所面臨的問題主要包括三個方面,其一是針對網絡服務器負載狀況的定義,其二是針對負載狀況信息的獲取方式,其三是針對獲取負載狀況信息后的處理。在網絡服務器實現負載均衡的過程當中,負載狀況的評價可以由三類指標構成,分別為統計類指標、靜態類指標、以及動態類指標。其中,統計類指標可作為網絡服務器所對應網站進行擴充的基本依據;靜態類指標則主要受到資源的影響,具有數字化、量化評價的特點;動態類指標則通過對探測結果的動態使用勁兒得到有關負載狀態的評價結果。
2.2 負載狀況獲取分析
在網絡服務器系統當中,各個服務器在決定新用戶訪問請求取/舍時需要參考所有服務器的負載水平。換言之,對于單個服務器而言,在決策新用戶訪問請求時必須了解其他服務器在同一狀態下的負載水平。因此,對于其他服務器而言,需要具備將自身負載狀況通知其他服務器的能力。目前技術條件支持下,對負載狀況的探知可以通過如下幾種途徑實現:
其一,建立在Agent技術的基礎之上,遵循網管協議Snmp進行探知:即在需要了解負載狀況的服務器上運行預先設計的Agent模塊,定時通知分配器,從而得到網絡服務器運行負載的確切情況;
其二,基于第三方軟件獲取網絡服務器負載情況:當前一些第三方工作軟件已經可支持對網絡服務器負載運行情況的獲取,但選用第三方軟件時要求分配器有與之相對應的接口,以便能夠對分配結果進行相應的調整;
其三,基于自主開發軟件的方式主動獲取服務器負載水平:在認知網絡服務器相應負載水平的過程中,最簡單與直接的集成方法就是自主進行軟件開發,在分配器的敢于下對服務器負載進行探測分析。
網絡服務器負載狀況的獲取方式可以分為兩類,分別為周期性獲取、非周期性獲取。其中,前者需要定期通過廣播或直接詢問的方式了解網絡服務器的負載狀態,而后者則僅在網絡服務器處于空閑/過載運行狀態下時,以廣播或直接詢問的方式了解負載狀態。在實際工作中,需要結合網絡服務器系統的整體開銷,考慮負載狀態的實時性,選擇最佳的獲取方式。
從實際應用的角度上來看,我們最終的目標不僅僅局限在將客戶端的服務請求平均分配給內部服務器,而是需要性能更具優勢的服務器接收更加多的服務請求,相對應的,一臺處理服務器請求相對較少的網絡服務器也需要分配更多的服務請求,針對出現故障的網絡服務器,則需要在故障得到恢復后方可繼續接受服務請求。
在分析選擇網絡服務器負載均衡算法的過程當中,必須對各個網絡服務器的性能進行綜合考慮,結合網絡服務器在硬件配置以及處理能力方面的特點,為各個網絡服務器分配可適應的權值,確保其能夠接受在權值范圍內服務器請求。
同時,在負載均衡的應用中,還需要考慮到各個網絡服務器在響應速度方面的均衡實現。實際應用中,負載均衡設備需要面向集群系統內部各個網絡服務器發送探測指令,然后根據網絡服務器對探測請求的響應速度決定將服務請求分配至哪一個網絡服務器當中。應用這種負載均衡算法能夠較好的反映集群系統內部所有網絡服務器的運行狀態,但也存在一定的局限性,即這種響應探測請求時間最短的響應時間所指的是負載均衡設備與服務器間的最快響應時間,而不是客戶端與服務器間的最快響應時間。
最后,在對網絡服務器負載均衡進行分析的過程當中還應考慮各服務器的最少連接數均衡。因為每一次請求在服務器的停留的時間差異有可能是非常大的,因此,隨著工作時間加長,每一臺服務器上的進程可能會產生極大的差異,簡單的輪循不能保證真正意義上的均衡。故而,當集群系統中網絡服務器接收到新用戶請求時,將當前的請求分配給當前連接數最少的服務器?!白钚∵B接數算法”則可以保證每一次訪問請求都分配給當前處理進程最小的服務器,從而使均衡更加動態化,更加符合實際情況,負載更加均衡。
對于網絡服務器而言,負載均衡技術的最根本目標是根據系統內部各個處理機的性能表現以及負載水平來對工作任務與指令進行分配,在這一過程當中,服務器節點的處理能力以及在該狀態下的負載量會對服務器負載變化產生直接影響。網絡服務器中負載量具有動態性的特點,為了明確該參數首先必須構建一個動態性的調度策略,確保整個網絡服務器系統在長時間運行狀態下負載不發生較大程度的傾斜,并且在負載均衡系統進行決策時首先考慮整個系統的負載狀態,確保所獲取信息的最新性。以上即根據該思路,對網絡服務器負載均衡的實現問題展開了詳細探討與研究,望能夠引起各方關注與重視。
[1] 蔣文保,郝雙,戴一奇等.高速網絡入侵檢測系統負載均衡策略與算法分析[J].清華大學學報(自然科學版),2006,46(1):106-110.
[2] 劉琪,袁堅,山秀明等.3G/WLAN網絡中基于終端移動與業務認知的動態負載均衡機制[J].計算機學報,2010,33(9):1569-1579.
李烜,男,1982.04-,本科,信息系統與信息管理專業,南京醫科大學附屬南京醫院(南京市第一醫院)信息科,助理工程師,主要從事醫院his系統維護,機房服務器管理,網絡設備管理工作。
On the load balance of network server
Li Xuan
(Nanjing Hospital Affiliated to Nanjing Medical University (Nanjing First Hospital),210029)
Firstly,this paper analyzes the basic concept of server load balancing,and summarizes the types of load balancing and the method of the load balancing in cluster system,and analyzes the methods of load balancing.
network server;load balance;implementation