• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    多層次負載平衡之一

    發布: 2007-7-02 21:50 | 作者: admin | 來源: | 查看: 8次 | 進入軟件測試論壇討論

    領測軟件測試網

    1.網絡服務應用現狀

    當前, Inte.net上業務量的發展都超出了過去最樂觀的估計,新的應用層出不窮,即使按照當時最優配置建設的網絡,也很快會感到吃不消,特別是Web服務器,必須具備承受大量并發訪問的能力。而對于提供大負載Web服務的服務器而言,CPU、I/O的處理能力很快會成為瓶頸。

    簡單地提高硬件性能并不能真正解決這個問題,因為單臺服務器的性能始終有限。一臺PC服務器通常所能提供的并發訪問處理能力大約為1000個,更高檔的專用服務器能夠支持3000至5000個并發訪問,但擁有這樣的能力仍然無法滿足負載較大的網站的要求。網絡請求具有突發性,當某些重大事件發生時,網絡訪問量就會急劇上升,從而造成網絡的擁堵。為緩解這個瓶頸,必須采用多臺服務器提供網絡服務的方法,將網絡請求按一定規則適當地分配給這些服務器。

    使用多臺服務器分擔負載的最簡單辦法是將不同的服務器用在不同的方面。按提供的內容進行分割時,可以將一臺服務器用于提供新聞頁面,而另一臺用于提供游戲頁面; 或者可以按服務器的功能進行分割,將一臺服務器用于提供靜態頁面訪問,而另一些用于提供CGI等大量消耗資源的動態頁面訪問。然而,由于網絡訪問具有突發性,很難確定頁面負載的大小,服務頁面分割過細會造成很大浪費。事實上造成負載過大的頁面常常在變化中,如果要經常按照負載變化來調整頁面所在的服務器,必然會給管理和維護帶來極大問題。因此,對于負載大的網站,根本的解決辦法就是采用負載均衡技術。

    2.問題的解決

    在負載均衡的思路下,多臺服務器為對稱方式,每臺服務器都具有同等的地位,可以單獨對外提供服務而無須其他服務器的輔助。通過某種負載分擔技術,將外部發送來的請求均勻地分配到對稱結構中的某一臺服務器上,而接收到請求的服務器都獨立回應客戶機的請求。由于建立內容完全一致的Web服務器并不復雜,可以使用服務器同步更新或者共享存儲空間等方法來完成,因此負載均衡技術成為建立高負載Web站點的關鍵性技術。

    負載均衡建立在現有網絡結構之上,它提供了一種廉價有效的方法擴展服務器帶寬和增加吞吐量,加強網絡數據處理能力,提高網絡的靈活性和可用性方法。它主要完成以下任務:解決網絡擁塞問題,服務就近提供,實現地理位置無關性 ;為用戶提供更好的訪問質量;提高服務器響應速度;提高服務器及其他資源的利用效率;避免了網絡關鍵部位出現單點失效。

    3.負載均衡器基本上可以分為兩類:

    3.1軟件類型的負載均衡器

    軟件類型的負載均衡器存在的唯一問題就是軟件執行的進程在速度上天生要比嵌入硬件的進程要慢。你需要一個負載均衡器的首要原因是你的網絡操作是以電信號的速度進行,而你的服務器操作是以應用程序的速度或者應用程序傳輸內容的速度進行。另一方面,如果你的網絡有與眾不同的需要,或者一些特別的需要,軟件可以通過簡單的升級滿足你的需要。當前用軟件來實現負載均衡任務的設備有三種類型: 構筑在PC平臺上的設備、加裝通用CPU的第三層交換機以及基于網絡處理器的系統。

    如果只是完成簡單的流量交換(Traffic cops)功能,這些產品的性能還是能夠為用戶所接受的。例如,利用CPU或者網絡處理器實現的、基于軟件的負載均衡設備,完全有能力使用會話中的第一個數據包里的第三層IP目標地址,來確定如何處理送往同一目標地址的后續數據包。 但是這種簡單的功能(像路由器中的一樣)不能讓網管通過調整網絡得到有利潤價值的應用管理。當IT專家試圖使用基于軟件的負載均衡設備實現更多的、涉及應用層數據的智能交換時,比如像為改善高端網站的性能而進行的URL 交換,以及在電子商務應用中為識別用戶而進行的持續cookie跟蹤等,速度問題就更嚴重了。

    究其原因,問題的關鍵在于,完成這些功能所需的信息深埋在數據包的內部,它只在網絡會話建立時才出現一次。這要求基于軟件的負載均衡設備監測每個會話數據包的內部。例如,利用URL交換,這一監測過程必須對每一個網頁上的每一個對象重復一次,而一個網頁很容易就包含25個以上的對象,可想而知,軟件處理留給交換機的是一個巨大的工作負擔。

    依靠通用CPU或者網絡處理器實現的、基于軟件的負載均衡設備不能以任何接近實時的方式調動運算能力來完成交換任務。使用類似URL交換的智能化的應用識別功能會使所有這些器件的性能降低90%以上,從而導致對終端用戶響應服務的遲緩,造成嚴重的延遲和性能惡化。更糟糕的是,這還只是一個網的問題,使用一個基于軟件的負載均衡設備在多個網絡間競爭通信,它很快會變成一個瓶頸——既成為別的網絡的瓶頸,也成為它自己的瓶頸。

      最后,基于軟件的負載均衡設備由通用CPU或者網絡處理器驅動,使用這些負載均衡設備的服務提供商和企業用戶正在冒險。他們不可能將自己的業務擴展到能夠快速跟上新客戶或者終端用戶的增長,從而也就不能創造新的收入。

    3.2硬件類型的負載均衡器

    硬件類型的負載均衡器通常是由路由器和交換機實現的。這些設備使用特定應用程序集成電路(ASICs),并且在硬件中以電信號的速度運行。這些是市場上最快的設備。然而,由于他們只能在硬件中運行,如果你的網絡業務處理所有改變,你就不得不等待供應商的開發并且你所需要的負載均衡器必須能夠給供應商帶來利潤,否則你必須重新購買硬件。

    硬件交換的優勢在于通過交換技術實現所有的網絡功能,包括線速的千兆比特TCP會話的分析、終結、發起甚至修改,全部用硬件實現, 去掉了復雜的軟件、通用CPU和網絡處理器。過去已有的解決方案依靠復雜的軟件與通用CPU或者網絡處理器配合,完成同樣的負載均衡任務。網絡功能從軟件向硅片轉移不是新思路,在20世紀90年代后期,基于軟件的路由器向基于專用集成電路(ASIC)的第三層交換機的轉移就是例證。當網絡技術被集成到硅片中去時,性能都會得到顯著增加,而總擁有成本則會大幅度降低。我們可以這樣認為:任何時候都是硅技術勝過軟件。這種簡單但是優秀的解決方案有一個直觀的結果: 服務提供商和企業用戶可以不犧牲線速的千兆比特性能,自由地設置網絡應用和業務所要求的任何規則。這不僅是一個理論上的優勢,就多媒體應用而言,如果處理幾十萬個用戶到視頻服務器的會話就像處理一個會話一樣,這種優勢就牽扯到企業賺錢和賠本的問題了。

    4.它是怎樣工作的?

    負載均衡器根據他們通過自定義的“代理”(由負載均衡器供應商設計)或使用某些形式的系統管理工具收集到后端服務器的信息來調整他們的傳輸量。每鐘均衡器都有其強項和弱點。代理一般為應用程序或者特定的硬件,可以密切的監視程序進程。然而,你通常最終會受到某個供應商的束縛。 使用現存的系統管理工具負載均衡器通過API和通用的協議可以監控范圍很廣的應用程序和硬件。當然,使用這些方法來管理你的商業系統有一些明顯的,有待進一步探討的安全問題。正如前面所提到的,新一代的負載均衡器不僅處理網絡和服務器性能問題,而且可以根據前端對后端內容的請求指揮流量。根據這個想法,負載均衡器應答請求并保持鏈接,直到內容準備開始傳輸,這個過程稱為“延遲捆綁”。

    這種需要了解內容的路由有非常大的好處,在這些服務器群中可以調整特定的應用程序(CGI,視頻流,靜態頁面服務,cookie服務,等等。),而且負載均衡器將在保持連接狀態期間處理和向客戶傳送所有的請求。例如,由于安全套接層(SSL)連接對處理器非常敏感而且必須在幾個Web進程和事務之間長久的保持連接,所以在使用SSL進程實現Web購物車時,這一點顯得尤為重要。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>