久久亚洲视频-成人av免费在线-亚洲免费大片-www.国产精品.com-又黄又爽又色的视频-精品乱子伦一区二区-无码人妻精品一区二区三区66-欧美一级做-国产在线国偷精品免费看-欧美性极品少妇-精品无码久久久久久久久久

樂(lè)思軟件

提交需求|聯(lián)系我們|請(qǐng)電400-603-8000

大型門戶網(wǎng)站的web代理服務(wù)器解決方案

  

  有一家中國(guó)著名的門戶網(wǎng)站,每天為數(shù)以百萬(wàn)計(jì)的用戶提供新聞,生活,娛樂(lè)等使用信息。他們的web基礎(chǔ)架構(gòu)由許多不同的“頻道”組成,提供基于web和手機(jī)短信的交流服務(wù);每個(gè)“頻道”包含數(shù)個(gè)“子頻道”,涵蓋內(nèi)容豐富。

  有一家中國(guó)著名的門戶網(wǎng)站,每天為數(shù)以百萬(wàn)計(jì)的用戶提供新聞,生活,娛樂(lè)等使用信息。他們的web基礎(chǔ)架構(gòu)由許多不同的“頻道”組成,提供基于web和手機(jī)短信的交流服務(wù);每個(gè)“頻道”包含數(shù)個(gè)“子頻道”,涵蓋內(nèi)容豐富的新聞,商業(yè),娛樂(lè)和體育信息。

  該網(wǎng)站原先的web代理結(jié)構(gòu)如下圖所示:

  圖1:WebProxy架構(gòu)

  每個(gè)“頻道”由一個(gè)或多個(gè)運(yùn)行Apachewebserver的服務(wù)器組成,并且由前端的多臺(tái)運(yùn)行Squid軟件的服務(wù)器提供gateway服務(wù)。這些服務(wù)器都基于x86芯片,運(yùn)行Linux操作系統(tǒng)。

  一臺(tái)獨(dú)立的RoundRobinDNS服務(wù)器用來(lái)記錄和統(tǒng)計(jì)Squid代理服務(wù)器的系統(tǒng)狀態(tài)統(tǒng)計(jì)信息,這些統(tǒng)計(jì)信息同時(shí)作為實(shí)施Squid服務(wù)器之間負(fù)載均衡(loadbalancing)的依據(jù)。

  該方案的主要問(wèn)題在于系統(tǒng)的可靠性(reliability)和可擴(kuò)展性(scalability)。網(wǎng)站規(guī)模的日益壯大對(duì)單個(gè)系統(tǒng)的可擴(kuò)展性和吞吐性能提出了更高的要求。同時(shí),降低總體擁有成本(Total CostofOwnership),維護(hù)成本,功耗和機(jī)房占地也成為了重要的考量因素。概括而言,新的系統(tǒng)方案必須達(dá)到實(shí)現(xiàn)以下目標(biāo):

  ●系統(tǒng)可用性和可靠性得到提升

  ●能滿足未來(lái)網(wǎng)絡(luò)流量的高可擴(kuò)展性

  ●低總體擁有成本

  ●系統(tǒng)性能狀態(tài)信息的可管理性

  Sun的方案

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

  SunCoolThreads?服務(wù)器

  基于UltraSPARCT1處理器CoolThreads技術(shù)的服務(wù)器系列,比如SunSPARCEnterprise

  T1000和T2000,統(tǒng)稱為CoolThreads服務(wù)器。這款UltraSPARCT1處理器在一個(gè)CPU當(dāng)中集成6-8個(gè)4線程的核,使得單個(gè)CPU在相對(duì)很少的功耗下可以同時(shí)運(yùn)行24-32個(gè)線程。這樣的設(shè)計(jì)特別適合Web環(huán)境下高并發(fā)的應(yīng)用,提供高性能的同時(shí)降低了功耗,節(jié)省了機(jī)架空間。(如下圖)

  Solaris?10操作系統(tǒng)

  Solaris10操作系統(tǒng)本身就是Sun公司為芯片級(jí)多線程(ChipMultithreading)技術(shù)所設(shè)計(jì)的。除了眾所周知的健壯性和出色的性能之外,Solaris10現(xiàn)在能夠充分利用UltraSPARCT1處理器的CMT能力,為高并發(fā)多用戶的應(yīng)用提供更加出色可擴(kuò)展能力。

  Solaris10在高級(jí)別安全性,大規(guī)模擴(kuò)展性,高性能網(wǎng)絡(luò),數(shù)據(jù)管理,互操作性,高可用性等領(lǐng)域集成了豐富的功能。和前一版本相比,Solaris10在多線程處理,內(nèi)存分配,文件系統(tǒng),TCP/IP協(xié)議棧上作了巨大的提升。隨著SolarisContainer功能的推出,將多臺(tái)服務(wù)器上的應(yīng)用整合到一臺(tái)機(jī)器上變得更加安全。Solaris可預(yù)測(cè)性自愈能力則大大提升了系統(tǒng)的可靠性,降低了維護(hù)成本。另外,Solaris10還加入了功能強(qiáng)大的動(dòng)態(tài)跟蹤工具DTrace。對(duì)任何在線的生產(chǎn)環(huán)境進(jìn)行調(diào)試和優(yōu)化將從此變得安全,高效。

  值得一提的是,隨著Solaris的開(kāi)源,將會(huì)有更多領(lǐng)域的軟件愛(ài)好者一起來(lái)研究Solaris,提高它在各種嶄新領(lǐng)域的可用性。

  SunJava?SystemWebProxyServer軟件 

  和其他web代理服務(wù)器一樣,這款軟件主要對(duì)web內(nèi)容做緩存和過(guò)濾。通過(guò)對(duì)經(jīng)常被訪問(wèn)內(nèi)容的緩存,減少了網(wǎng)絡(luò)帶寬使用和目標(biāo)web服務(wù)器的CPU時(shí)間,從而用戶響應(yīng)時(shí)間顯著地縮短。另外,通過(guò)訪問(wèn)控制和內(nèi)容過(guò)濾,這款軟件能夠加強(qiáng)網(wǎng)絡(luò)的安全性。

  SunJavaSystemWebProxyServer采用了高度模塊化的設(shè)計(jì)。這使得它在運(yùn)行于對(duì)稱多處理器(SMP)或者芯片多線程(CMT)服務(wù)器上的時(shí)候能夠充分體現(xiàn)出多線程和高可擴(kuò)展性的優(yōu)勢(shì)。

  在單個(gè)進(jìn)程內(nèi)部同時(shí)處理大量并發(fā)請(qǐng)求的能力幫助web應(yīng)用從容應(yīng)對(duì)高峰時(shí)候的網(wǎng)絡(luò)負(fù)載。

  這款軟件的架構(gòu)包含三大類線程,各自處理專門的任務(wù)。

  圖2:可擴(kuò)展的軟件架構(gòu)

  ●Acceptor線程

  ●Worker線程

  ●Poll線程

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

  這些不同種類的線程數(shù)量可以被配置文件定義,滿足不同網(wǎng)絡(luò)流量下的可擴(kuò)展要求。

  評(píng)測(cè)

  我們?cè)趯?shí)驗(yàn)室和真實(shí)網(wǎng)絡(luò)兩種環(huán)境下,考察了SunSPARCEnterpriseT1000服務(wù)器上跑Sun JavaSystemWebProxyServer的性能情況。實(shí)驗(yàn)室環(huán)境下,我們使用了WebPolygraph評(píng)測(cè)工具。真實(shí)環(huán)境的測(cè)試基于客戶生產(chǎn)環(huán)境下的概念驗(yàn)證(ProofofConcept)測(cè)試。

  實(shí)驗(yàn)室模擬環(huán)境評(píng)測(cè)

  WebPolygraph是一個(gè)開(kāi)源的基準(zhǔn)測(cè)試工具,被廣泛地用來(lái)測(cè)試代理服務(wù)器,網(wǎng)絡(luò)加速器,L4/7交換,內(nèi)容過(guò)濾等Web應(yīng)用軟件的性能。

  圖3:模擬測(cè)試環(huán)境

  測(cè)試環(huán)境如上圖所示,一臺(tái)SunSPARCEnterpriseT1000服務(wù)器上運(yùn)行Solaris10操作系統(tǒng)和SunJavaSystemProxyServer4.0.4軟件。這臺(tái)服務(wù)器配置了8核的UltraSPARCT1處理器,可以支持32個(gè)并發(fā)線程。內(nèi)存配置為8GB,其中4GB被Proxy軟件保留作為緩存。

  有4臺(tái)機(jī)器用來(lái)向被測(cè)代理服務(wù)器發(fā)送模擬的網(wǎng)絡(luò)負(fù)載。它們通過(guò)一個(gè)千兆以太網(wǎng)交換機(jī)和被測(cè)機(jī)器組成一個(gè)單獨(dú)的子網(wǎng)。每一臺(tái)測(cè)試機(jī)通過(guò)運(yùn)行Polygraph的客戶端程序PolyClt,來(lái)向被測(cè)機(jī)發(fā)送web訪問(wèn)請(qǐng)求;其中一臺(tái)測(cè)試機(jī)同時(shí)運(yùn)行服務(wù)器端程序PolySrv來(lái)模擬后端Web服務(wù)器。

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

  圖4:SunJavaSystemWebProxy測(cè)試結(jié)果

  SunJavaSystemWebProxy的測(cè)試結(jié)果如上圖所示,性能差不多到達(dá)了每秒鐘處理8000個(gè)請(qǐng)求。由于千兆以太網(wǎng)交換機(jī)達(dá)到了滿負(fù)荷,我們沒(méi)有進(jìn)一步加大測(cè)試負(fù)載。然而通過(guò)我們進(jìn)一步的考察發(fā)現(xiàn),在交換機(jī)滿負(fù)荷情況下,被測(cè)代理服務(wù)器仍有30%的CPU空閑時(shí)間。可以設(shè)想,如果網(wǎng)絡(luò)瓶頸不存在,被測(cè)服務(wù)器的性能數(shù)據(jù)應(yīng)該有更高的提升空間。

  圖5:SquidWebProxy測(cè)試結(jié)果

  Squidwebproxy軟件的測(cè)試跑在一臺(tái)基于IntelXeon雙CPU,8G內(nèi)存,運(yùn)行RedHatLinux操作系統(tǒng)的服務(wù)器上。除此以外,所有測(cè)試環(huán)境的設(shè)備和前面測(cè)試相同。Squid2.5和Squid 2.6兩個(gè)版本都進(jìn)行了測(cè)試。

  Squid軟件只有一個(gè)單線程用來(lái)處理HTTP請(qǐng)求,一次只能處理一個(gè)請(qǐng)求。新的Squid2.6版本增加了新的事件處理機(jī)制,力圖在占用更少的CPU開(kāi)銷的情況下處理更多的并發(fā)請(qǐng)求。

  考慮到Squid在并發(fā)處理上的不足,我們甚至還做了進(jìn)一步的嘗試:同時(shí)開(kāi)啟兩個(gè)Squid2.6的進(jìn)程(實(shí)例)。初步的結(jié)果顯示,每秒鐘6000個(gè)請(qǐng)求處理可以達(dá)到。但是,多個(gè)獨(dú)立的Squid進(jìn)程帶來(lái)了明顯的缺點(diǎn):緩存內(nèi)容在多個(gè)Squid實(shí)例之間不能被共享。也就是說(shuō),某些內(nèi)容請(qǐng)求潛在地被多個(gè)Squid實(shí)例重復(fù)緩存,浪費(fèi)了內(nèi)存和寶貴的CPU處理時(shí)間。相比較而言,SunJavaSystemWebProxy在單個(gè)實(shí)例中可以線性地?cái)U(kuò)展。這完全得益于軟件本身多線程的設(shè)計(jì)和對(duì)UltraSPARCT1處理器的CMT能力。

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

  真實(shí)環(huán)境評(píng)測(cè)

  用戶真實(shí)環(huán)境下的測(cè)試使用SunSPARCEnterpriseT2000服務(wù)器跑單個(gè)SunJavaSystemWeb ProxyServer實(shí)例。該服務(wù)器配置了8核UltraSPARCT1處理器,8GB內(nèi)存,運(yùn)行Solaris10操作系統(tǒng)。

  測(cè)試過(guò)程中,這臺(tái)T2000服務(wù)器負(fù)擔(dān)了大約4倍的其他運(yùn)行Squid2.5的x86服務(wù)器的網(wǎng)絡(luò)負(fù)載。峰值情況下,T2000服務(wù)器的CPU占用率也僅為35%。在三個(gè)多月的概念驗(yàn)證(POC)測(cè)試過(guò)程中,T2000經(jīng)受了相當(dāng)于平均負(fù)載2-5倍的峰值負(fù)載考驗(yàn),沒(méi)有發(fā)生任何宕機(jī)。而同樣環(huán)境下的其他x86服務(wù)器卻必須保持10-20%的CPU空閑,以防峰值負(fù)載下系統(tǒng)發(fā)生崩潰(crash)。

  此次POC清楚地顯示出SunSPARCEnterprise服務(wù)器,Solaris10操作系統(tǒng),SunJavaSystem WebProxyServer軟件所組成的解決方案在性能和可靠性方面體現(xiàn)出的巨大優(yōu)勢(shì)。

  結(jié)論

  實(shí)驗(yàn)室模擬環(huán)境和真實(shí)生產(chǎn)環(huán)境下的評(píng)測(cè)都顯示,Sun的解決方案相比基于x86,Linux和Squid的流行方案在性能和可靠性以及可擴(kuò)展性方面的優(yōu)點(diǎn)。從硬件到操作系統(tǒng)到上層軟件的高度多線程設(shè)計(jì),使其成為一個(gè)不折不扣的領(lǐng)先的網(wǎng)絡(luò)代理服務(wù)器解決方案。

  Sun的方案相比Squid方案提供了高得多的吞吐能力以及更快速的響應(yīng)時(shí)間;Sun的硬件和軟件棧(softwarestack)顯示出一如既往的穩(wěn)定,三個(gè)月的測(cè)試過(guò)程沒(méi)有一次宕機(jī)。

  在滿足苛刻的性能需求的同時(shí),Sun的方案仍然為未來(lái)的潛在需求提高了提升的空間。生產(chǎn)環(huán)境下把多臺(tái)x86服務(wù)器的負(fù)載倒換到一臺(tái)SunT2000服務(wù)器上,體現(xiàn)了整合的優(yōu)勢(shì)。因?yàn)橥ǔ?lái)講,單臺(tái)系統(tǒng)要比多臺(tái)系統(tǒng)更易于管理;能耗和占地也將顯著降低。體現(xiàn)了Sun公司在更低的能源消耗和空間占用情況下,提供更高性能更高可擴(kuò)展性計(jì)算能力的一貫承諾。

文章作者:楊云

集成系統(tǒng)網(wǎng)絡(luò)情報(bào)信息數(shù)據(jù)庫(kù)

CIO頻道人物視窗
CIO頻道方案案例庫(kù)
大數(shù)據(jù)建設(shè)方案案例庫(kù)
電子政務(wù)建設(shè)方案案例庫(kù)
互聯(lián)集成系統(tǒng)構(gòu)建方案案例庫(kù)
商務(wù)智能建設(shè)方案案例庫(kù)
系統(tǒng)集成類軟件信息研發(fā)企業(yè)名錄