高清免费视频|成都冻货格|我可以再往深处一点吗视频|舌头伸进去添的我好爽高潮欧美|性都花花世家|无人区卡一卡二卡三乱码网站|草莓看视频在线观看免费

樂思軟件

提交需求|聯系我們|請電400-603-8000

大型門戶網站的web代理服務器解決方案

  

  有一家中國著名的門戶網站,每天為數以百萬計的用戶提供新聞,生活,娛樂等使用信息。他們的web基礎架構由許多不同的“頻道”組成,提供基于web和手機短信的交流服務;每個“頻道”包含數個“子頻道”,涵蓋內容豐富。

  有一家中國著名的門戶網站,每天為數以百萬計的用戶提供新聞,生活,娛樂等使用信息。他們的web基礎架構由許多不同的“頻道”組成,提供基于web和手機短信的交流服務;每個“頻道”包含數個“子頻道”,涵蓋內容豐富的新聞,商業,娛樂和體育信息。

  該網站原先的web代理結構如下圖所示:

  圖1:WebProxy架構

  每個“頻道”由一個或多個運行Apachewebserver的服務器組成,并且由前端的多臺運行Squid軟件的服務器提供gateway服務。這些服務器都基于x86芯片,運行Linux操作系統。

  一臺獨立的RoundRobinDNS服務器用來記錄和統計Squid代理服務器的系統狀態統計信息,這些統計信息同時作為實施Squid服務器之間負載均衡(loadbalancing)的依據。

  該方案的主要問題在于系統的可靠性(reliability)和可擴展性(scalability)。網站規模的日益壯大對單個系統的可擴展性和吞吐性能提出了更高的要求。同時,降低總體擁有成本(Total CostofOwnership),維護成本,功耗和機房占地也成為了重要的考量因素。概括而言,新的系統方案必須達到實現以下目標:

  ●系統可用性和可靠性得到提升

  ●能滿足未來網絡流量的高可擴展性

  ●低總體擁有成本

  ●系統性能狀態信息的可管理性

  Sun的方案

  基于UltraSPARCT1處理器的CoolThreads服務器,Solaris10操作系統,SunJavaSystem WebProxyServer軟件將組成一個極具競爭力的Web代理方案。相比較Squid軟件而言,Sun JavaSystemWebProxyServer是多線程的設計,可以充分利用UltraSPARCT1處理器的芯片級多線程(CMT)能力,從而提供給系統更高的吞吐,服務更多的并發用戶請求。

  SunCoolThreads?服務器

  基于UltraSPARCT1處理器CoolThreads技術的服務器系列,比如SunSPARCEnterprise

  T1000和T2000,統稱為CoolThreads服務器。這款UltraSPARCT1處理器在一個CPU當中集成6-8個4線程的核,使得單個CPU在相對很少的功耗下可以同時運行24-32個線程。這樣的設計特別適合Web環境下高并發的應用,提供高性能的同時降低了功耗,節省了機架空間。(如下圖)

  Solaris?10操作系統

  Solaris10操作系統本身就是Sun公司為芯片級多線程(ChipMultithreading)技術所設計的。除了眾所周知的健壯性和出色的性能之外,Solaris10現在能夠充分利用UltraSPARCT1處理器的CMT能力,為高并發多用戶的應用提供更加出色可擴展能力。

  Solaris10在高級別安全性,大規模擴展性,高性能網絡,數據管理,互操作性,高可用性等領域集成了豐富的功能。和前一版本相比,Solaris10在多線程處理,內存分配,文件系統,TCP/IP協議棧上作了巨大的提升。隨著SolarisContainer功能的推出,將多臺服務器上的應用整合到一臺機器上變得更加安全。Solaris可預測性自愈能力則大大提升了系統的可靠性,降低了維護成本。另外,Solaris10還加入了功能強大的動態跟蹤工具DTrace。對任何在線的生產環境進行調試和優化將從此變得安全,高效。

  值得一提的是,隨著Solaris的開源,將會有更多領域的軟件愛好者一起來研究Solaris,提高它在各種嶄新領域的可用性。

  SunJava?SystemWebProxyServer軟件 

  和其他web代理服務器一樣,這款軟件主要對web內容做緩存和過濾。通過對經常被訪問內容的緩存,減少了網絡帶寬使用和目標web服務器的CPU時間,從而用戶響應時間顯著地縮短。另外,通過訪問控制和內容過濾,這款軟件能夠加強網絡的安全性。

  SunJavaSystemWebProxyServer采用了高度模塊化的設計。這使得它在運行于對稱多處理器(SMP)或者芯片多線程(CMT)服務器上的時候能夠充分體現出多線程和高可擴展性的優勢。

  在單個進程內部同時處理大量并發請求的能力幫助web應用從容應對高峰時候的網絡負載。

  這款軟件的架構包含三大類線程,各自處理專門的任務。

  圖2:可擴展的軟件架構

  ●Acceptor線程

  ●Worker線程

  ●Poll線程

  Proxy服務器為每個進程(proxy實例)管理兩套隊列:Connection隊列和Poll隊列。Acceptor線程接受訪問請求,并將它們放入Connection隊列;Worker從Connection隊列里取得待處理請求,借助HTTP引擎進行處理;Poll線程將那些需要保持更新(Keep-alive)的任務重新放入Connection隊列排隊,等待被在一次處理。

  這些不同種類的線程數量可以被配置文件定義,滿足不同網絡流量下的可擴展要求。

  評測

  我們在實驗室和真實網絡兩種環境下,考察了SunSPARCEnterpriseT1000服務器上跑Sun JavaSystemWebProxyServer的性能情況。實驗室環境下,我們使用了WebPolygraph評測工具。真實環境的測試基于客戶生產環境下的概念驗證(ProofofConcept)測試。

  實驗室模擬環境評測

  WebPolygraph是一個開源的基準測試工具,被廣泛地用來測試代理服務器,網絡加速器,L4/7交換,內容過濾等Web應用軟件的性能。

  圖3:模擬測試環境

  測試環境如上圖所示,一臺SunSPARCEnterpriseT1000服務器上運行Solaris10操作系統和SunJavaSystemProxyServer4.0.4軟件。這臺服務器配置了8核的UltraSPARCT1處理器,可以支持32個并發線程。內存配置為8GB,其中4GB被Proxy軟件保留作為緩存。

  有4臺機器用來向被測代理服務器發送模擬的網絡負載。它們通過一個千兆以太網交換機和被測機器組成一個單獨的子網。每一臺測試機通過運行Polygraph的客戶端程序PolyClt,來向被測機發送web訪問請求;其中一臺測試機同時運行服務器端程序PolySrv來模擬后端Web服務器。

  網絡負荷被模擬成盡量接近真實環境下所觀察到的模式:每個訪問內容對象以13K為平均大小,呈指數化分布;所有的對象都可以被緩存,生命(更新)周期為2分鐘。測試沒有激活保持更新(keep-alive)的功能,所有的訪問請求會產生一個新的TCP連接。這樣的設計保證了和真實環境最大限度的吻合,proxy服務器得到足夠的壓力,為性能測試提供準確的數據。

  圖4:SunJavaSystemWebProxy測試結果

  SunJavaSystemWebProxy的測試結果如上圖所示,性能差不多到達了每秒鐘處理8000個請求。由于千兆以太網交換機達到了滿負荷,我們沒有進一步加大測試負載。然而通過我們進一步的考察發現,在交換機滿負荷情況下,被測代理服務器仍有30%的CPU空閑時間。可以設想,如果網絡瓶頸不存在,被測服務器的性能數據應該有更高的提升空間。

  圖5:SquidWebProxy測試結果

  Squidwebproxy軟件的測試跑在一臺基于IntelXeon雙CPU,8G內存,運行RedHatLinux操作系統的服務器上。除此以外,所有測試環境的設備和前面測試相同。Squid2.5和Squid 2.6兩個版本都進行了測試。

  Squid軟件只有一個單線程用來處理HTTP請求,一次只能處理一個請求。新的Squid2.6版本增加了新的事件處理機制,力圖在占用更少的CPU開銷的情況下處理更多的并發請求。

  考慮到Squid在并發處理上的不足,我們甚至還做了進一步的嘗試:同時開啟兩個Squid2.6的進程(實例)。初步的結果顯示,每秒鐘6000個請求處理可以達到。但是,多個獨立的Squid進程帶來了明顯的缺點:緩存內容在多個Squid實例之間不能被共享。也就是說,某些內容請求潛在地被多個Squid實例重復緩存,浪費了內存和寶貴的CPU處理時間。相比較而言,SunJavaSystemWebProxy在單個實例中可以線性地擴展。這完全得益于軟件本身多線程的設計和對UltraSPARCT1處理器的CMT能力。

  相比較兩者而言,SunJavaSystemWebProxyServer在達到更大吞吐能力的情況下,提供了更快的響應時間:前者在達到每秒鐘7500個處理請求的同時,響應時間為15.65毫秒;后者在達到每秒鐘4500個處理請求的時候,響應時間為600毫秒以上。

  真實環境評測

  用戶真實環境下的測試使用SunSPARCEnterpriseT2000服務器跑單個SunJavaSystemWeb ProxyServer實例。該服務器配置了8核UltraSPARCT1處理器,8GB內存,運行Solaris10操作系統。

  測試過程中,這臺T2000服務器負擔了大約4倍的其他運行Squid2.5的x86服務器的網絡負載。峰值情況下,T2000服務器的CPU占用率也僅為35%。在三個多月的概念驗證(POC)測試過程中,T2000經受了相當于平均負載2-5倍的峰值負載考驗,沒有發生任何宕機。而同樣環境下的其他x86服務器卻必須保持10-20%的CPU空閑,以防峰值負載下系統發生崩潰(crash)。

  此次POC清楚地顯示出SunSPARCEnterprise服務器,Solaris10操作系統,SunJavaSystem WebProxyServer軟件所組成的解決方案在性能和可靠性方面體現出的巨大優勢。

  結論

  實驗室模擬環境和真實生產環境下的評測都顯示,Sun的解決方案相比基于x86,Linux和Squid的流行方案在性能和可靠性以及可擴展性方面的優點。從硬件到操作系統到上層軟件的高度多線程設計,使其成為一個不折不扣的領先的網絡代理服務器解決方案。

  Sun的方案相比Squid方案提供了高得多的吞吐能力以及更快速的響應時間;Sun的硬件和軟件棧(softwarestack)顯示出一如既往的穩定,三個月的測試過程沒有一次宕機。

  在滿足苛刻的性能需求的同時,Sun的方案仍然為未來的潛在需求提高了提升的空間。生產環境下把多臺x86服務器的負載倒換到一臺SunT2000服務器上,體現了整合的優勢。因為通常來講,單臺系統要比多臺系統更易于管理;能耗和占地也將顯著降低。體現了Sun公司在更低的能源消耗和空間占用情況下,提供更高性能更高可擴展性計算能力的一貫承諾。

文章作者:楊云

集成系統網絡情報信息數據庫

CIO頻道人物視窗
CIO頻道方案案例庫
大數據建設方案案例庫
電子政務建設方案案例庫
互聯集成系統構建方案案例庫
商務智能建設方案案例庫
系統集成類軟件信息研發企業名錄