




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第十一講 負載均衡服務(wù)一、服務(wù)性能二、常用分析方法三、負載平衡內(nèi) 容一、服務(wù)性能性能的重要性: 核心質(zhì)量屬性之一正確健壯安全 高效易維護什么是高效性:包括時間高效性與空間高效性時間高效性主要是指系統(tǒng)響應(yīng)時間小、吞吐率高空間高效性主要是占用資源(例如:CPU、內(nèi)存、數(shù)據(jù)庫連接、網(wǎng)絡(luò)連接等等)少類似內(nèi)容還包括:同時服務(wù)的客戶數(shù)目等由于早期CPU的計算能力有限內(nèi)存容量也有限因此程序的效率問題在早期很受重視:算法復(fù)雜性的研究長期以來是計算機科學的重要內(nèi)容衡量一個算法好壞的主要標準是時間開銷與空間開銷僅十多年年來,對效率問題的重視程度有所下降:為提高開發(fā)效率,人們往往以犧牲代碼效率為代價例如大量系統(tǒng)軟件
2、、框架的引入方便了應(yīng)用軟件的開發(fā)同時導(dǎo)致調(diào)用層次過多、系統(tǒng)執(zhí)行效率下降 只是由于硬件速度與容量提升較快蓋過了軟件效率的下降使最終用戶感覺系統(tǒng)速度還是增加了為了提高用戶的響應(yīng)時間許多系統(tǒng)以大量的重復(fù)冗余計算為代價:為同一個用戶請求創(chuàng)建在多個機器上的計算并將最先得到的結(jié)果返回給用戶將后續(xù)得到的結(jié)果直接拋棄 google:一次Google搜索所消耗的電能可以足夠一個11瓦的節(jié)能燈亮15分鐘到一個小時降低對效率的追求 是導(dǎo)致IT系統(tǒng)能耗增長的因素之一隨著能源問題的日趨突出這方面的研究迫切需要加強如何提高效率?基本過程:分析效率=發(fā)現(xiàn)問題=調(diào)整基本方式:離線 在線二、效率的分析方法1、靜態(tài)分析2、動態(tài)測
3、試3、在線監(jiān)測1、靜態(tài)分析通過靜態(tài)分析可以發(fā)現(xiàn)程序中:從來就不會執(zhí)行的代碼(Dead Code)不會被引用的變量或者賦值操作不需要的檢查不必要的串復(fù)制(strcpy)、數(shù)字轉(zhuǎn)換等等然后就可以對代碼進行優(yōu)化:在不改變程序語義的前提下剔除冗余的代碼,從而減少內(nèi)存開銷,提高執(zhí)行效率2、測試這個過程需要自動化的測試工具來輔助完成:測試工具主要用來模擬多種正常、峰值以及異常負載條件從而對系統(tǒng)的各項性能指標進行測試效率測試可以使在用戶模擬的環(huán)境中進行的由于軟件的運行效率與運行環(huán)境有很大的關(guān)系因此效率測試更需要在系統(tǒng)部署到實際環(huán)境中但還沒有實際上線時進行3、在線監(jiān)測在系統(tǒng)實際運行過程中分析性能對效率進行監(jiān)測
4、的主要對象包括:系統(tǒng)的響應(yīng)時間CPU負載情況內(nèi)存使用客戶連接實例數(shù)目內(nèi)部類型的實例數(shù)目數(shù)據(jù)庫連接實例數(shù)目等等三、負載平衡在由大量處理結(jié)點組成的集群系統(tǒng)中系統(tǒng)在服務(wù)過程中提高資源利用率降低請求響應(yīng)時間的有效手段1、負載平衡方案 2、Web層的負載平衡3、EJB層的負載平衡4、動態(tài)負載平衡技術(shù) 內(nèi) 容1、負載平衡方案 負載平衡點負載平衡粒度負載平衡算法負載平衡點負載平衡點指作出負載平衡決策的位置獨立的負載均衡器上、服務(wù)節(jié)點自身、客戶端在多數(shù)情況下負載平衡由單個節(jié)點完成單點負載平衡好處:便于獲得系統(tǒng)的全局狀態(tài),作出全局一致的決策;能實現(xiàn)復(fù)雜的負載平衡算法,獲得最優(yōu)的效果;便于支持多種平衡策略,適用于
5、不同的應(yīng)用環(huán)境單點負載平衡的不足:負載平衡點可能成為性能瓶頸影響系統(tǒng)的伸縮性也可能單點失效多點負載平衡可以獲得比較好的伸縮性,但一般僅能使用靜態(tài)算法存在兩種類型的多點負載平衡一種是多個節(jié)點獨立地進行決策,其綜合效果取決于單個節(jié)點的負載平衡效果與多個節(jié)點的疊加效果;另一種是多個節(jié)點并行地做出相同的決策,如根據(jù)請求的源地址(或目標地址)進行靜態(tài)散列以確定服務(wù)節(jié)點,此時多個物理負載平衡點等價于單個邏輯負載平衡點。當客戶數(shù)量眾多而又無法依賴高速硬件來完成負載分發(fā)時,多點負載平衡可能是必須的負載平衡粒度指負載分發(fā)(或遷移)基本單位的組合程度對于網(wǎng)絡(luò)層的負載平衡,基本單位是IP數(shù)據(jù)報。一種可能的負載平衡粒
6、度是目標地址為同一個IP的所有數(shù)據(jù)報(如Linux服務(wù)器集群系統(tǒng)的目標地址散列調(diào)度算法)對于分布對象中間件而言,基本單位是對象請求。常見的兩種負載平衡粒度是請求級與會話級。請求級(per-request)指每次對象調(diào)用時都作負載分發(fā)會話級(per-session)指的是僅在查找或首次調(diào)用一個對象時進行負載決策,而后針對該對象引用的所有請求都被發(fā)往同一個節(jié)點直觀上,粒度越細,負載平衡效果越好,但用于負載平衡的開銷也越大負載平衡算法 具體的負載平衡實施方法根據(jù)決策時是否使用運行時刻的信息(如各節(jié)點的負載狀況、請求的類型或內(nèi)容),負載平衡算法可以分為靜態(tài)算法與動態(tài)算法兩大類靜態(tài)算法靜態(tài)算法也稱為非適
7、應(yīng)性算法,不使用運行時刻的信息常用的靜態(tài)算法有輪循、隨機及加權(quán)輪循 算法(weighted round-robin)等幾種其中輪循與隨機算法適合于所有節(jié)點處理能力相當?shù)那闆r,靜態(tài)加權(quán)算法適合于節(jié)點處理能力不同的情況動態(tài)算法動態(tài)算法也稱為適應(yīng)性算法,參考運行時的系統(tǒng)信息做出負載平衡決策一般只有單點負載平衡才能使用動態(tài)算法常見的動態(tài)算法可分為兩類一類算法僅使用系統(tǒng)的負載信息。典型的例子是最低負載法(least loaded),即每次負載決策都選當前負載最輕的節(jié)點另一類算法不僅考慮系統(tǒng)負載,還兼顧請求的內(nèi)容以獲得更好的總體性能,例如基于局部性的負載分發(fā) 理論上,動態(tài)算法能獲得更好的負載平衡效果,特別
8、在負載不均勻的情況下實際效果則依賴于所選擇的負載分發(fā)策略、負載度量以及運行時數(shù)據(jù)的獲取特別的,對于動態(tài)負載平衡算法,選擇合適的負載度量(load metric)十分重要常用的負載度量有單位時間的請求數(shù)、一段時間內(nèi)CPU運行隊列的平均長度、CPU利用率、可用內(nèi)存數(shù)以及活躍連接數(shù)等等很多參數(shù)的設(shè)置會影響到動態(tài)算法的效果例如從各節(jié)點獲取負載的頻率以及確定節(jié)點是否過載的界限等 2、Web層的負載平衡 Web層負載平衡具有如下特點:1)單點負載平衡,既邏輯上只有一個負載 平衡點,物理上也只有一個負載平衡點2)請求級負載平衡,即每次客戶請求都需要經(jīng)由負載平衡器進行請求分發(fā)方案1: DNS輪循DNS輪循(D
9、NS Round Robin) 由DNS服務(wù)器維護域名與一組IP地址的映射,對于每一個域名解析請求,DNS服務(wù)器依次選擇列表中的下一個IP地址返回由于用戶直接訪問的DNS服務(wù)器常常沒有所需的DNS信息,而需將DNS請求轉(zhuǎn)發(fā)給保存著該信息的DNS服務(wù)器,并且緩存返回的域名與IP地址的映射,實際效果可能并不理想。當一個新的服務(wù)節(jié)點加入時,DNS信息不能很快更新;而當服務(wù)節(jié)點崩潰時,DNS服務(wù)器也無法感知,這些都影響了負載平衡的效果方案2:服務(wù)器均衡負載服務(wù)器均衡負載(Server Load Balancing,簡稱SLB):整個系統(tǒng)對外而言只有一個IP地址(即均衡器的地址),所有請求都發(fā)往該地址,
10、由均衡器根據(jù)選定的負載平衡算法轉(zhuǎn)發(fā)請求負載均衡器一般由交換機或路由器充當,請求轉(zhuǎn)發(fā)與應(yīng)答返回通過修改IP數(shù)據(jù)報中的源地址與目的地址來實現(xiàn)請求結(jié)果既可以經(jīng)由均衡器返回客戶,也可由服務(wù)節(jié)點直接返回客戶SLB能迅速感知服務(wù)節(jié)點的加入與退出;檢查節(jié)點的狀態(tài)并將不可用的節(jié)點排除在外為避免單點失效,均衡器一般采用冗余配置方案3:Windows 2000 Server的負載均衡服務(wù) 沒有單獨的負載均衡器,而由位于各個服務(wù)節(jié)點上的負載平衡服務(wù)實現(xiàn)客戶請求到節(jié)點地址的源地址散列由于各個節(jié)點上的負載平衡服務(wù)使用相同的映射規(guī)則,這種方案既達到了單點負載平衡的效果,又獲得了比前兩種方案更高的可用性具體做法:參與負載平
11、衡的所有節(jié)點組成一個集群,對客戶而言只有一個IP地址位于網(wǎng)絡(luò)驅(qū)動與TCP/IP協(xié)議實現(xiàn)之間的負載平衡服務(wù)將該IP地址映射為一個特定的MAC地址,從而集群內(nèi)各個節(jié)點的數(shù)據(jù)鏈路層都會接收所有客戶請求;對于來自同一個IP地址與端口的客戶請求,各個節(jié)點的負載平衡服務(wù)都將其映射為同一個節(jié)點地址;此節(jié)點的負載平衡服務(wù)將請求向上交給TCP/IP協(xié)議棧處理,而其它節(jié)點則忽略該請求方案4:中間件層負載平衡由Web服務(wù)器實現(xiàn)對請求的負載平衡Apache/Tomcat提供了一種典型的負載平衡方案,即由一個Apache服務(wù)器處理靜態(tài)頁面,后面掛多個Tomcat服務(wù)器處理JSP/Servlet請求為保持會話語義,一般使
12、用“粘著會話”(sticky session)策略,即同一個客戶的所有請求由同一個Tomcat服務(wù)器來處理負載平衡使用靜態(tài)加權(quán)輪循算法,可以為不同的Tomcat服務(wù)器指定不同的權(quán)值Tomcat提供了會話狀態(tài)復(fù)制的能力(基于JGroups提供的組通信服務(wù)),從而提高了系統(tǒng)的可用性3、EJB層的負載平衡很多情況下,Web容器與EJB容器位于同一個節(jié)點上,此時對于Web客戶僅需要Web層負載平衡即可但是當Web容器與EJB容器分離時,特別對于獨立客戶而言,EJB負載平衡仍是必要的 一般僅使用靜態(tài)負載平衡算法 三種粒度的平衡查找級(per-lookup) 向一個home對象以及該home對象創(chuàng)建的所有remote對象發(fā)出的請求都由一個固定的節(jié)點處理,僅支持同一個EJB的不同home對象及不同EJB的負載平衡會話級(per-session) 向home對象發(fā)出的不同請求可以負載平衡,而向remote對象發(fā)出的請求則始終由創(chuàng)建該對象的節(jié)點處理請求級(per-request) home與remote對象的請求都可以負載平衡。一般只有無態(tài)
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Unit 3 Wrapping Up the Topic-Project 教學設(shè)計 2024-2025學年仁愛科普版英語七年級上冊
- 2糖到哪里去了(教學設(shè)計)-2023-2024學年一年級下冊科學冀人版
- 南方科技大學《環(huán)境資源法》2023-2024學年第二學期期末試卷
- 《7 校園綠化設(shè)計》(教學設(shè)計)-2023-2024學年六年級下冊綜合實踐活動粵教版
- 冀中職業(yè)學院《書法藝術(shù)與欣賞》2023-2024學年第二學期期末試卷
- 蘇州經(jīng)貿(mào)職業(yè)技術(shù)學院《安裝工程計量與計價》2023-2024學年第二學期期末試卷
- 教科版高中信息技術(shù)必修教學設(shè)計-5.1 音頻信息的采集與加工
- 四川化工職業(yè)技術(shù)學院《信號分析與處理C》2023-2024學年第二學期期末試卷
- 濮陽醫(yī)學高等專科學?!段⒉夹g(shù)基礎(chǔ)》2023-2024學年第二學期期末試卷
- 四川外國語大學成都學院《兒科護理學(實驗)》2023-2024學年第二學期期末試卷
- 血液凈化治療臨床應(yīng)用進展
- 單位定點洗車協(xié)議書
- 留置導(dǎo)尿法操作評分標準
- CJJ-T67-2015風景園林制圖標準
- 《氨制冷企業(yè)安全規(guī)范》AQ7015-2018
- 醫(yī)院門診醫(yī)生績效考核標準及評分細則
- 遼寧省沈陽市名校2024年中考物理模擬試題含解析
- 歷史類常識考試100題及完整答案
- 醫(yī)院納入定點后使用醫(yī)療保障基金的預(yù)測性分析報告
- 媒介素養(yǎng)概論 課件 劉勇 第0-4章 緒論、媒介素養(yǎng)-新聞評論
- 智能割草機器人的概述外文翻譯
評論
0/150
提交評論