負(fù)載均衡服務(wù)課件_第1頁
負(fù)載均衡服務(wù)課件_第2頁
負(fù)載均衡服務(wù)課件_第3頁
負(fù)載均衡服務(wù)課件_第4頁
負(fù)載均衡服務(wù)課件_第5頁
已閱讀5頁,還剩57頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第十一講

負(fù)載均衡服務(wù)第十一講

負(fù)載均衡服務(wù)一、服務(wù)性能二、常用分析方法三、負(fù)載平衡內(nèi)容一、服務(wù)性能內(nèi)容一、服務(wù)性能性能的重要性:核心質(zhì)量屬性之一 正確 健壯 安全 高效 易維護(hù)

……一、服務(wù)性能性能的重要性:核心質(zhì)量屬性之一什么是高效性:包括時間高效性與空間高效性時間高效性主要是指系統(tǒng)響應(yīng)時間小、吞吐率高空間高效性主要是占用資源(例如:CPU、內(nèi)存、數(shù)據(jù)庫連接、網(wǎng)絡(luò)連接等等)少類似內(nèi)容還包括:同時服務(wù)的客戶數(shù)目等什么是高效性:包括時間高效性與空間高效性由于早期CPU的計算能力有限 內(nèi)存容量也有限因此程序的效率問題在早期很受重視:算法復(fù)雜性的研究長期以來是計算機(jī)科學(xué)的重要內(nèi)容衡量一個算法好壞的主要標(biāo)準(zhǔn)是時間開銷與空間開銷由于早期CPU的計算能力有限僅十多年年來,對效率問題的重視程度有所下降:為提高開發(fā)效率,人們往往以犧牲代碼效率為代價例如大量系統(tǒng)軟件、框架的引入 方便了應(yīng)用軟件的開發(fā) 同時導(dǎo)致調(diào)用層次過多、系統(tǒng)執(zhí)行效率下降只是由于硬件速度與容量提升較快 蓋過了軟件效率的下降 使最終用戶感覺系統(tǒng)速度還是增加了僅十多年年來,對效率問題的重視程度有所下降:為了提高用戶的響應(yīng)時間許多系統(tǒng)以大量的重復(fù)冗余計算為代價:為同一個用戶請求創(chuàng)建在多個機(jī)器上的計算并將最先得到的結(jié)果返回給用戶將后續(xù)得到的結(jié)果直接拋棄

google:一次Google搜索所消耗的電能可以足夠一個11瓦的節(jié)能燈亮15分鐘到一個小時降低對效率的追求是導(dǎo)致IT系統(tǒng)能耗增長的因素之一隨著能源問題的日趨突出這方面的研究迫切需要加強(qiáng)為了提高用戶的響應(yīng)時間如何提高效率?基本過程:分析效率=>發(fā)現(xiàn)問題=>調(diào)整基本方式:離線在線如何提高效率?基本過程:二、效率的分析方法1、靜態(tài)分析2、動態(tài)測試3、在線監(jiān)測二、效率的分析方法1、靜態(tài)分析1、靜態(tài)分析通過靜態(tài)分析可以發(fā)現(xiàn)程序中:從來就不會執(zhí)行的代碼(DeadCode)不會被引用的變量或者賦值操作不需要的檢查不必要的串復(fù)制(strcpy)、數(shù)字轉(zhuǎn)換等等然后就可以對代碼進(jìn)行優(yōu)化:在不改變程序語義的前提下剔除冗余的代碼,從而減少內(nèi)存開銷,提高執(zhí)行效率1、靜態(tài)分析通過靜態(tài)分析可以發(fā)現(xiàn)程序中:2、測試這個過程需要自動化的測試工具來輔助完成:測試工具主要用來模擬多種正常、峰值以及異常負(fù)載條件從而對系統(tǒng)的各項性能指標(biāo)進(jìn)行測試效率測試可以使在用戶模擬的環(huán)境中進(jìn)行的由于軟件的運(yùn)行效率與運(yùn)行環(huán)境有很大的關(guān)系因此效率測試更需要在系統(tǒng)部署到實際環(huán)境中但還沒有實際上線時進(jìn)行2、測試這個過程需要自動化的測試工具來輔助完成:3、在線監(jiān)測在系統(tǒng)實際運(yùn)行過程中分析性能對效率進(jìn)行監(jiān)測的主要對象包括:系統(tǒng)的響應(yīng)時間CPU負(fù)載情況內(nèi)存使用客戶連接實例數(shù)目內(nèi)部類型的實例數(shù)目數(shù)據(jù)庫連接實例數(shù)目等等3、在線監(jiān)測在系統(tǒng)實際運(yùn)行過程中分析性能三、負(fù)載平衡在由大量處理結(jié)點(diǎn)組成的集群系統(tǒng)中系統(tǒng)在服務(wù)過程中 提高資源利用率 降低請求響應(yīng)時間 的有效手段三、負(fù)載平衡在由大量處理結(jié)點(diǎn)組成的集群系統(tǒng)中1、負(fù)載平衡方案2、Web層的負(fù)載平衡3、EJB層的負(fù)載平衡4、動態(tài)負(fù)載平衡技術(shù)內(nèi)容1、負(fù)載平衡方案內(nèi)容1、負(fù)載平衡方案負(fù)載平衡點(diǎn)負(fù)載平衡粒度負(fù)載平衡算法1、負(fù)載平衡方案負(fù)載平衡點(diǎn)負(fù)載平衡點(diǎn)負(fù)載平衡點(diǎn)指作出負(fù)載平衡決策的位置獨(dú)立的負(fù)載均衡器上、服務(wù)節(jié)點(diǎn)自身、客戶端在多數(shù)情況下負(fù)載平衡由單個節(jié)點(diǎn)完成單點(diǎn)負(fù)載平衡好處:便于獲得系統(tǒng)的全局狀態(tài),作出全局一致的決策;能實現(xiàn)復(fù)雜的負(fù)載平衡算法,獲得最優(yōu)的效果;便于支持多種平衡策略,適用于不同的應(yīng)用環(huán)境單點(diǎn)負(fù)載平衡的不足:負(fù)載平衡點(diǎn)可能成為性能瓶頸影響系統(tǒng)的伸縮性也可能單點(diǎn)失效負(fù)載平衡點(diǎn)負(fù)載平衡點(diǎn)指作出負(fù)載平衡決策的位置多點(diǎn)負(fù)載平衡可以獲得比較好的伸縮性,但一般僅能使用靜態(tài)算法存在兩種類型的多點(diǎn)負(fù)載平衡一種是多個節(jié)點(diǎn)獨(dú)立地進(jìn)行決策,其綜合效果取決于單個節(jié)點(diǎn)的負(fù)載平衡效果與多個節(jié)點(diǎn)的疊加效果;另一種是多個節(jié)點(diǎn)并行地做出相同的決策,如根據(jù)請求的源地址(或目標(biāo)地址)進(jìn)行靜態(tài)散列以確定服務(wù)節(jié)點(diǎn),此時多個物理負(fù)載平衡點(diǎn)等價于單個邏輯負(fù)載平衡點(diǎn)。當(dāng)客戶數(shù)量眾多而又無法依賴高速硬件來完成負(fù)載分發(fā)時,多點(diǎn)負(fù)載平衡可能是必須的多點(diǎn)負(fù)載平衡負(fù)載平衡粒度指負(fù)載分發(fā)(或遷移)基本單位的組合程度對于網(wǎng)絡(luò)層的負(fù)載平衡,基本單位是IP數(shù)據(jù)報。一種可能的負(fù)載平衡粒度是目標(biāo)地址為同一個IP的所有數(shù)據(jù)報(如Linux服務(wù)器集群系統(tǒng)的目標(biāo)地址散列調(diào)度算法)對于分布對象中間件而言,基本單位是對象請求。常見的兩種負(fù)載平衡粒度是請求級與會話級。請求級(per-request)指每次對象調(diào)用時都作負(fù)載分發(fā)會話級(per-session)指的是僅在查找或首次調(diào)用一個對象時進(jìn)行負(fù)載決策,而后針對該對象引用的所有請求都被發(fā)往同一個節(jié)點(diǎn)直觀上,粒度越細(xì),負(fù)載平衡效果越好,但用于負(fù)載平衡的開銷也越大負(fù)載平衡粒度指負(fù)載分發(fā)(或遷移)基本單位的組合程度負(fù)載平衡算法具體的負(fù)載平衡實施方法根據(jù)決策時是否使用運(yùn)行時刻的信息(如各節(jié)點(diǎn)的負(fù)載狀況、請求的類型或內(nèi)容),負(fù)載平衡算法可以分為靜態(tài)算法與動態(tài)算法兩大類負(fù)載平衡算法具體的負(fù)載平衡實施方法靜態(tài)算法靜態(tài)算法也稱為非適應(yīng)性算法,不使用運(yùn)行時刻的信息常用的靜態(tài)算法有輪循、隨機(jī)及加權(quán)輪循算法(weightedround-robin)等幾種其中輪循與隨機(jī)算法適合于所有節(jié)點(diǎn)處理能力相當(dāng)?shù)那闆r,靜態(tài)加權(quán)算法適合于節(jié)點(diǎn)處理能力不同的情況靜態(tài)算法靜態(tài)算法也稱為非適應(yīng)性算法,不使用運(yùn)行時刻的信息動態(tài)算法動態(tài)算法也稱為適應(yīng)性算法,參考運(yùn)行時的系統(tǒng)信息做出負(fù)載平衡決策一般只有單點(diǎn)負(fù)載平衡才能使用動態(tài)算法常見的動態(tài)算法可分為兩類一類算法僅使用系統(tǒng)的負(fù)載信息。典型的例子是最低負(fù)載法(leastloaded),即每次負(fù)載決策都選當(dāng)前負(fù)載最輕的節(jié)點(diǎn)另一類算法不僅考慮系統(tǒng)負(fù)載,還兼顧請求的內(nèi)容以獲得更好的總體性能,例如基于局部性的負(fù)載分發(fā)動態(tài)算法動態(tài)算法也稱為適應(yīng)性算法,參考運(yùn)行時的系統(tǒng)信息做出負(fù)理論上,動態(tài)算法能獲得更好的負(fù)載平衡效果,特別在負(fù)載不均勻的情況下實際效果則依賴于所選擇的負(fù)載分發(fā)策略、負(fù)載度量以及運(yùn)行時數(shù)據(jù)的獲取特別的,對于動態(tài)負(fù)載平衡算法,選擇合適的負(fù)載度量(loadmetric)十分重要常用的負(fù)載度量有單位時間的請求數(shù)、一段時間內(nèi)CPU運(yùn)行隊列的平均長度、CPU利用率、可用內(nèi)存數(shù)以及活躍連接數(shù)等等很多參數(shù)的設(shè)置會影響到動態(tài)算法的效果例如從各節(jié)點(diǎn)獲取負(fù)載的頻率以及確定節(jié)點(diǎn)是否過載的界限等理論上,動態(tài)算法能獲得更好的負(fù)載平衡效果,特別在負(fù)載不均勻的2、Web層的負(fù)載平衡Web層負(fù)載平衡具有如下特點(diǎn):1)單點(diǎn)負(fù)載平衡,既邏輯上只有一個負(fù)載平衡點(diǎn),物理上也只有一個負(fù)載平衡點(diǎn)2)請求級負(fù)載平衡,即每次客戶請求都需要經(jīng)由負(fù)載平衡器進(jìn)行請求分發(fā)2、Web層的負(fù)載平衡Web層負(fù)載平衡具有如下特點(diǎn):方案1:DNS輪循DNS輪循(DNSRoundRobin)由DNS服務(wù)器維護(hù)域名與一組IP地址的映射,對于每一個域名解析請求,DNS服務(wù)器依次選擇列表中的下一個IP地址返回由于用戶直接訪問的DNS服務(wù)器常常沒有所需的DNS信息,而需將DNS請求轉(zhuǎn)發(fā)給保存著該信息的DNS服務(wù)器,并且緩存返回的域名與IP地址的映射,實際效果可能并不理想。當(dāng)一個新的服務(wù)節(jié)點(diǎn)加入時,DNS信息不能很快更新;而當(dāng)服務(wù)節(jié)點(diǎn)崩潰時,DNS服務(wù)器也無法感知,這些都影響了負(fù)載平衡的效果方案1:DNS輪循DNS輪循(DNSRoundRobi方案2:服務(wù)器均衡負(fù)載服務(wù)器均衡負(fù)載(ServerLoadBalancing,簡稱SLB):整個系統(tǒng)對外而言只有一個IP地址(即均衡器的地址),所有請求都發(fā)往該地址,由均衡器根據(jù)選定的負(fù)載平衡算法轉(zhuǎn)發(fā)請求負(fù)載均衡器一般由交換機(jī)或路由器充當(dāng),請求轉(zhuǎn)發(fā)與應(yīng)答返回通過修改IP數(shù)據(jù)報中的源地址與目的地址來實現(xiàn)請求結(jié)果既可以經(jīng)由均衡器返回客戶,也可由服務(wù)節(jié)點(diǎn)直接返回客戶SLB能迅速感知服務(wù)節(jié)點(diǎn)的加入與退出;檢查節(jié)點(diǎn)的狀態(tài)并將不可用的節(jié)點(diǎn)排除在外為避免單點(diǎn)失效,均衡器一般采用冗余配置方案2:服務(wù)器均衡負(fù)載服務(wù)器均衡負(fù)載(ServerLoad方案3:Windows2000Server的負(fù)載均衡服務(wù)沒有單獨(dú)的負(fù)載均衡器,而由位于各個服務(wù)節(jié)點(diǎn)上的負(fù)載平衡服務(wù)實現(xiàn)客戶請求到節(jié)點(diǎn)地址的源地址散列由于各個節(jié)點(diǎn)上的負(fù)載平衡服務(wù)使用相同的映射規(guī)則,這種方案既達(dá)到了單點(diǎn)負(fù)載平衡的效果,又獲得了比前兩種方案更高的可用性具體做法:參與負(fù)載平衡的所有節(jié)點(diǎn)組成一個集群,對客戶而言只有一個IP地址位于網(wǎng)絡(luò)驅(qū)動與TCP/IP協(xié)議實現(xiàn)之間的負(fù)載平衡服務(wù)將該IP地址映射為一個特定的MAC地址,從而集群內(nèi)各個節(jié)點(diǎn)的數(shù)據(jù)鏈路層都會接收所有客戶請求;對于來自同一個IP地址與端口的客戶請求,各個節(jié)點(diǎn)的負(fù)載平衡服務(wù)都將其映射為同一個節(jié)點(diǎn)地址;此節(jié)點(diǎn)的負(fù)載平衡服務(wù)將請求向上交給TCP/IP協(xié)議棧處理,而其它節(jié)點(diǎn)則忽略該請求方案3:Windows2000Server的負(fù)載均衡服務(wù)方案4:中間件層負(fù)載平衡由Web服務(wù)器實現(xiàn)對請求的負(fù)載平衡Apache/Tomcat提供了一種典型的負(fù)載平衡方案,即由一個Apache服務(wù)器處理靜態(tài)頁面,后面掛多個Tomcat服務(wù)器處理JSP/Servlet請求為保持會話語義,一般使用“粘著會話”(stickysession)策略,即同一個客戶的所有請求由同一個Tomcat服務(wù)器來處理負(fù)載平衡使用靜態(tài)加權(quán)輪循算法,可以為不同的Tomcat服務(wù)器指定不同的權(quán)值Tomcat提供了會話狀態(tài)復(fù)制的能力(基于JGroups提供的組通信服務(wù)),從而提高了系統(tǒng)的可用性方案4:中間件層負(fù)載平衡由Web服務(wù)器實現(xiàn)對請求的負(fù)載平衡3、EJB層的負(fù)載平衡很多情況下,Web容器與EJB容器位于同一個節(jié)點(diǎn)上,此時對于Web客戶僅需要Web層負(fù)載平衡即可但是當(dāng)Web容器與EJB容器分離時,特別對于獨(dú)立客戶而言,EJB負(fù)載平衡仍是必要的一般僅使用靜態(tài)負(fù)載平衡算法3、EJB層的負(fù)載平衡很多情況下,Web容器與EJB容器位于三種粒度的平衡查找級(per-lookup)向一個home對象以及該home對象創(chuàng)建的所有remote對象發(fā)出的請求都由一個固定的節(jié)點(diǎn)處理,僅支持同一個EJB的不同home對象及不同EJB的負(fù)載平衡會話級(per-session)向home對象發(fā)出的不同請求可以負(fù)載平衡,而向remote對象發(fā)出的請求則始終由創(chuàng)建該對象的節(jié)點(diǎn)處理請求級(per-request)home與remote對象的請求都可以負(fù)載平衡。一般只有無態(tài)會話構(gòu)件與只讀實體構(gòu)件能做到這一級。盡管會話狀態(tài)復(fù)制為有態(tài)會話構(gòu)件的請求級負(fù)載平衡提供了支持,但是考慮到性能開銷,在實際應(yīng)用中會話狀態(tài)復(fù)制一般僅用于需要支持容錯的情況三種粒度的平衡查找級(per-lookup)向一個home4、動態(tài)負(fù)載平衡技術(shù)動態(tài)、異構(gòu)的環(huán)境這表現(xiàn)為節(jié)點(diǎn)會動態(tài)加入、退出集群,節(jié)點(diǎn)的負(fù)載能力可能會發(fā)生變化(例如,在正在運(yùn)行的集群的某個節(jié)點(diǎn)上運(yùn)行一個后臺應(yīng)用,可能需要降低該節(jié)點(diǎn)的權(quán)值),有異構(gòu)節(jié)點(diǎn)加入集群等等動態(tài)遷移!4、動態(tài)負(fù)載平衡技術(shù)動態(tài)、異構(gòu)的環(huán)境謝謝大家!

再見!謝謝大家!

再見!第十一講

負(fù)載均衡服務(wù)第十一講

負(fù)載均衡服務(wù)一、服務(wù)性能二、常用分析方法三、負(fù)載平衡內(nèi)容一、服務(wù)性能內(nèi)容一、服務(wù)性能性能的重要性:核心質(zhì)量屬性之一 正確 健壯 安全 高效 易維護(hù)

……一、服務(wù)性能性能的重要性:核心質(zhì)量屬性之一什么是高效性:包括時間高效性與空間高效性時間高效性主要是指系統(tǒng)響應(yīng)時間小、吞吐率高空間高效性主要是占用資源(例如:CPU、內(nèi)存、數(shù)據(jù)庫連接、網(wǎng)絡(luò)連接等等)少類似內(nèi)容還包括:同時服務(wù)的客戶數(shù)目等什么是高效性:包括時間高效性與空間高效性由于早期CPU的計算能力有限 內(nèi)存容量也有限因此程序的效率問題在早期很受重視:算法復(fù)雜性的研究長期以來是計算機(jī)科學(xué)的重要內(nèi)容衡量一個算法好壞的主要標(biāo)準(zhǔn)是時間開銷與空間開銷由于早期CPU的計算能力有限僅十多年年來,對效率問題的重視程度有所下降:為提高開發(fā)效率,人們往往以犧牲代碼效率為代價例如大量系統(tǒng)軟件、框架的引入 方便了應(yīng)用軟件的開發(fā) 同時導(dǎo)致調(diào)用層次過多、系統(tǒng)執(zhí)行效率下降只是由于硬件速度與容量提升較快 蓋過了軟件效率的下降 使最終用戶感覺系統(tǒng)速度還是增加了僅十多年年來,對效率問題的重視程度有所下降:為了提高用戶的響應(yīng)時間許多系統(tǒng)以大量的重復(fù)冗余計算為代價:為同一個用戶請求創(chuàng)建在多個機(jī)器上的計算并將最先得到的結(jié)果返回給用戶將后續(xù)得到的結(jié)果直接拋棄

google:一次Google搜索所消耗的電能可以足夠一個11瓦的節(jié)能燈亮15分鐘到一個小時降低對效率的追求是導(dǎo)致IT系統(tǒng)能耗增長的因素之一隨著能源問題的日趨突出這方面的研究迫切需要加強(qiáng)為了提高用戶的響應(yīng)時間如何提高效率?基本過程:分析效率=>發(fā)現(xiàn)問題=>調(diào)整基本方式:離線在線如何提高效率?基本過程:二、效率的分析方法1、靜態(tài)分析2、動態(tài)測試3、在線監(jiān)測二、效率的分析方法1、靜態(tài)分析1、靜態(tài)分析通過靜態(tài)分析可以發(fā)現(xiàn)程序中:從來就不會執(zhí)行的代碼(DeadCode)不會被引用的變量或者賦值操作不需要的檢查不必要的串復(fù)制(strcpy)、數(shù)字轉(zhuǎn)換等等然后就可以對代碼進(jìn)行優(yōu)化:在不改變程序語義的前提下剔除冗余的代碼,從而減少內(nèi)存開銷,提高執(zhí)行效率1、靜態(tài)分析通過靜態(tài)分析可以發(fā)現(xiàn)程序中:2、測試這個過程需要自動化的測試工具來輔助完成:測試工具主要用來模擬多種正常、峰值以及異常負(fù)載條件從而對系統(tǒng)的各項性能指標(biāo)進(jìn)行測試效率測試可以使在用戶模擬的環(huán)境中進(jìn)行的由于軟件的運(yùn)行效率與運(yùn)行環(huán)境有很大的關(guān)系因此效率測試更需要在系統(tǒng)部署到實際環(huán)境中但還沒有實際上線時進(jìn)行2、測試這個過程需要自動化的測試工具來輔助完成:3、在線監(jiān)測在系統(tǒng)實際運(yùn)行過程中分析性能對效率進(jìn)行監(jiān)測的主要對象包括:系統(tǒng)的響應(yīng)時間CPU負(fù)載情況內(nèi)存使用客戶連接實例數(shù)目內(nèi)部類型的實例數(shù)目數(shù)據(jù)庫連接實例數(shù)目等等3、在線監(jiān)測在系統(tǒng)實際運(yùn)行過程中分析性能三、負(fù)載平衡在由大量處理結(jié)點(diǎn)組成的集群系統(tǒng)中系統(tǒng)在服務(wù)過程中 提高資源利用率 降低請求響應(yīng)時間 的有效手段三、負(fù)載平衡在由大量處理結(jié)點(diǎn)組成的集群系統(tǒng)中1、負(fù)載平衡方案2、Web層的負(fù)載平衡3、EJB層的負(fù)載平衡4、動態(tài)負(fù)載平衡技術(shù)內(nèi)容1、負(fù)載平衡方案內(nèi)容1、負(fù)載平衡方案負(fù)載平衡點(diǎn)負(fù)載平衡粒度負(fù)載平衡算法1、負(fù)載平衡方案負(fù)載平衡點(diǎn)負(fù)載平衡點(diǎn)負(fù)載平衡點(diǎn)指作出負(fù)載平衡決策的位置獨(dú)立的負(fù)載均衡器上、服務(wù)節(jié)點(diǎn)自身、客戶端在多數(shù)情況下負(fù)載平衡由單個節(jié)點(diǎn)完成單點(diǎn)負(fù)載平衡好處:便于獲得系統(tǒng)的全局狀態(tài),作出全局一致的決策;能實現(xiàn)復(fù)雜的負(fù)載平衡算法,獲得最優(yōu)的效果;便于支持多種平衡策略,適用于不同的應(yīng)用環(huán)境單點(diǎn)負(fù)載平衡的不足:負(fù)載平衡點(diǎn)可能成為性能瓶頸影響系統(tǒng)的伸縮性也可能單點(diǎn)失效負(fù)載平衡點(diǎn)負(fù)載平衡點(diǎn)指作出負(fù)載平衡決策的位置多點(diǎn)負(fù)載平衡可以獲得比較好的伸縮性,但一般僅能使用靜態(tài)算法存在兩種類型的多點(diǎn)負(fù)載平衡一種是多個節(jié)點(diǎn)獨(dú)立地進(jìn)行決策,其綜合效果取決于單個節(jié)點(diǎn)的負(fù)載平衡效果與多個節(jié)點(diǎn)的疊加效果;另一種是多個節(jié)點(diǎn)并行地做出相同的決策,如根據(jù)請求的源地址(或目標(biāo)地址)進(jìn)行靜態(tài)散列以確定服務(wù)節(jié)點(diǎn),此時多個物理負(fù)載平衡點(diǎn)等價于單個邏輯負(fù)載平衡點(diǎn)。當(dāng)客戶數(shù)量眾多而又無法依賴高速硬件來完成負(fù)載分發(fā)時,多點(diǎn)負(fù)載平衡可能是必須的多點(diǎn)負(fù)載平衡負(fù)載平衡粒度指負(fù)載分發(fā)(或遷移)基本單位的組合程度對于網(wǎng)絡(luò)層的負(fù)載平衡,基本單位是IP數(shù)據(jù)報。一種可能的負(fù)載平衡粒度是目標(biāo)地址為同一個IP的所有數(shù)據(jù)報(如Linux服務(wù)器集群系統(tǒng)的目標(biāo)地址散列調(diào)度算法)對于分布對象中間件而言,基本單位是對象請求。常見的兩種負(fù)載平衡粒度是請求級與會話級。請求級(per-request)指每次對象調(diào)用時都作負(fù)載分發(fā)會話級(per-session)指的是僅在查找或首次調(diào)用一個對象時進(jìn)行負(fù)載決策,而后針對該對象引用的所有請求都被發(fā)往同一個節(jié)點(diǎn)直觀上,粒度越細(xì),負(fù)載平衡效果越好,但用于負(fù)載平衡的開銷也越大負(fù)載平衡粒度指負(fù)載分發(fā)(或遷移)基本單位的組合程度負(fù)載平衡算法具體的負(fù)載平衡實施方法根據(jù)決策時是否使用運(yùn)行時刻的信息(如各節(jié)點(diǎn)的負(fù)載狀況、請求的類型或內(nèi)容),負(fù)載平衡算法可以分為靜態(tài)算法與動態(tài)算法兩大類負(fù)載平衡算法具體的負(fù)載平衡實施方法靜態(tài)算法靜態(tài)算法也稱為非適應(yīng)性算法,不使用運(yùn)行時刻的信息常用的靜態(tài)算法有輪循、隨機(jī)及加權(quán)輪循算法(weightedround-robin)等幾種其中輪循與隨機(jī)算法適合于所有節(jié)點(diǎn)處理能力相當(dāng)?shù)那闆r,靜態(tài)加權(quán)算法適合于節(jié)點(diǎn)處理能力不同的情況靜態(tài)算法靜態(tài)算法也稱為非適應(yīng)性算法,不使用運(yùn)行時刻的信息動態(tài)算法動態(tài)算法也稱為適應(yīng)性算法,參考運(yùn)行時的系統(tǒng)信息做出負(fù)載平衡決策一般只有單點(diǎn)負(fù)載平衡才能使用動態(tài)算法常見的動態(tài)算法可分為兩類一類算法僅使用系統(tǒng)的負(fù)載信息。典型的例子是最低負(fù)載法(leastloaded),即每次負(fù)載決策都選當(dāng)前負(fù)載最輕的節(jié)點(diǎn)另一類算法不僅考慮系統(tǒng)負(fù)載,還兼顧請求的內(nèi)容以獲得更好的總體性能,例如基于局部性的負(fù)載分發(fā)動態(tài)算法動態(tài)算法也稱為適應(yīng)性算法,參考運(yùn)行時的系統(tǒng)信息做出負(fù)理論上,動態(tài)算法能獲得更好的負(fù)載平衡效果,特別在負(fù)載不均勻的情況下實際效果則依賴于所選擇的負(fù)載分發(fā)策略、負(fù)載度量以及運(yùn)行時數(shù)據(jù)的獲取特別的,對于動態(tài)負(fù)載平衡算法,選擇合適的負(fù)載度量(loadmetric)十分重要常用的負(fù)載度量有單位時間的請求數(shù)、一段時間內(nèi)CPU運(yùn)行隊列的平均長度、CPU利用率、可用內(nèi)存數(shù)以及活躍連接數(shù)等等很多參數(shù)的設(shè)置會影響到動態(tài)算法的效果例如從各節(jié)點(diǎn)獲取負(fù)載的頻率以及確定節(jié)點(diǎn)是否過載的界限等理論上,動態(tài)算法能獲得更好的負(fù)載平衡效果,特別在負(fù)載不均勻的2、Web層的負(fù)載平衡Web層負(fù)載平衡具有如下特點(diǎn):1)單點(diǎn)負(fù)載平衡,既邏輯上只有一個負(fù)載平衡點(diǎn),物理上也只有一個負(fù)載平衡點(diǎn)2)請求級負(fù)載平衡,即每次客戶請求都需要經(jīng)由負(fù)載平衡器進(jìn)行請求分發(fā)2、Web層的負(fù)載平衡Web層負(fù)載平衡具有如下特點(diǎn):方案1:DNS輪循DNS輪循(DNSRoundRobin)由DNS服務(wù)器維護(hù)域名與一組IP地址的映射,對于每一個域名解析請求,DNS服務(wù)器依次選擇列表中的下一個IP地址返回由于用戶直接訪問的DNS服務(wù)器常常沒有所需的DNS信息,而需將DNS請求轉(zhuǎn)發(fā)給保存著該信息的DNS服務(wù)器,并且緩存返回的域名與IP地址的映射,實際效果可能并不理想。當(dāng)一個新的服務(wù)節(jié)點(diǎn)加入時,DNS信息不能很快更新;而當(dāng)服務(wù)節(jié)點(diǎn)崩潰時,DNS服務(wù)器也無法感知,這些都影響了負(fù)載平衡的效果方案1:DNS輪循DNS輪循(DNSRoundRobi方案2:服務(wù)器均衡負(fù)載服務(wù)器均衡負(fù)載(ServerLoadBalancing,簡稱SLB):整個系統(tǒng)對外而言只有一個IP地址(即均衡器的地址),所有請求都發(fā)往該地址,由均衡器根據(jù)選定的負(fù)載平衡算法轉(zhuǎn)發(fā)請求負(fù)載均衡器一般由交換機(jī)或路由器充當(dāng),請求轉(zhuǎn)發(fā)與應(yīng)答返回通過修改IP數(shù)據(jù)報中的源地址與目的地址來實現(xiàn)請求結(jié)果既可以經(jīng)由均衡器返回客戶,也可由服務(wù)節(jié)點(diǎn)直接返回客戶SLB能迅速感知服務(wù)節(jié)點(diǎn)的加入與退出;檢查節(jié)點(diǎn)的狀態(tài)并將不可用的節(jié)點(diǎn)排除在外為避免單點(diǎn)失效,均衡器一般采用冗余配置方案2:服務(wù)器均衡負(fù)載服務(wù)器均衡負(fù)載(ServerLoad方案3:Windows2000Server的負(fù)載均衡服務(wù)沒有單獨(dú)的負(fù)載均衡器,而由位于各個服務(wù)節(jié)點(diǎn)上的負(fù)載平衡服務(wù)實現(xiàn)客戶請求到節(jié)點(diǎn)地址的源地址散列由于各個節(jié)點(diǎn)上的負(fù)載平衡服務(wù)使用相同的映射規(guī)則,這種方案既達(dá)到了單點(diǎn)負(fù)載平衡的效果,又獲得了比前兩種方案更高的可用性具體做法:參與負(fù)載平衡的所有節(jié)點(diǎn)組成一個集群,對客戶而言只有一個IP地址位于網(wǎng)絡(luò)驅(qū)動與TCP/IP協(xié)議實現(xiàn)之間的負(fù)載平衡服務(wù)將該IP地址映射為一個特定的MAC地址,從而集群內(nèi)各個節(jié)點(diǎn)的數(shù)據(jù)鏈路層都會接收所有客戶請求;對于來自同一個IP地址與端口的客戶請求,各個節(jié)點(diǎn)的負(fù)載平衡服務(wù)都將其映射為同一個節(jié)點(diǎn)地址;此節(jié)點(diǎn)的負(fù)載平衡服務(wù)將請求向上交給TCP/IP協(xié)議棧處理,而其它節(jié)點(diǎn)則忽略該請求方案3:Wind

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論