国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

分布式和緩存技術(shù)在大并發(fā)量網(wǎng)站中的應(yīng)用

2014-04-29 00:44:03米麗萍陳旭清
計(jì)算機(jī)時(shí)代 2014年1期
關(guān)鍵詞:負(fù)載均衡吞吐量

米麗萍 陳旭清

摘 要: 對(duì)于高訪問(wèn)量網(wǎng)站,Web服務(wù)器端經(jīng)常面臨大并發(fā)量和海量數(shù)據(jù)流請(qǐng)求的問(wèn)題,導(dǎo)致用戶訪問(wèn)延時(shí),利用負(fù)載均衡和內(nèi)存緩存相結(jié)合技術(shù)可以解決這一問(wèn)題。在服務(wù)器端采用集群下的負(fù)載均衡策略,將工作任務(wù)相對(duì)均衡地分配到各個(gè)節(jié)點(diǎn)上執(zhí)行;采用內(nèi)存緩存機(jī)制,通過(guò)優(yōu)先讀取內(nèi)存中的緩存數(shù)據(jù)以減少對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)次數(shù),進(jìn)而減輕數(shù)據(jù)庫(kù)負(fù)載。性能測(cè)試結(jié)果和用戶體驗(yàn)反饋信息顯示,該方法在大并發(fā)量訪問(wèn)時(shí)能極大地提高系統(tǒng)的吞吐量。

關(guān)鍵詞: Web服務(wù)器; 大并發(fā)量; 海量數(shù)據(jù)流; 負(fù)載均衡; 內(nèi)存緩存; 吞吐量

中圖分類號(hào):TP393.09 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2014)01-17-03

0 引言

為了響應(yīng)中共中央提出的大規(guī)模培訓(xùn)干部和大幅度提高干部隊(duì)伍素質(zhì)的要求,我省組織部利用信息化手段,推出了干部在線學(xué)習(xí)的新型培訓(xùn)模式。該系統(tǒng)擁有注冊(cè)用戶20多萬(wàn)人,并發(fā)量達(dá)到1-2萬(wàn)人的規(guī)模,任何一個(gè)單點(diǎn)服務(wù)都不可能承受這種負(fù)載,如何解決服務(wù)器的高負(fù)載問(wèn)題成為系統(tǒng)開(kāi)發(fā)過(guò)程中首先要解決的問(wèn)題。本系統(tǒng)硬件結(jié)構(gòu)采用服務(wù)器集群[1]的方式,軟件開(kāi)發(fā)和部署采用分布式架構(gòu)與集群下的緩存技術(shù)[2]相結(jié)合的方式,服務(wù)器間相互配合,極大提升了系統(tǒng)的吞吐量。

1 服務(wù)器集群的負(fù)載平衡

集群是一種并行或分布式處理的系統(tǒng)[3]。服務(wù)器集群是指將多臺(tái)同構(gòu)或異構(gòu)服務(wù)器集中起來(lái),對(duì)外提供透明的服務(wù),協(xié)同完成特定的任務(wù),從而獲得很高的計(jì)算速度,減少單點(diǎn)故障數(shù)量,實(shí)現(xiàn)群集資源的高可用性并提高性能。

將系統(tǒng)負(fù)載分配到不同的服務(wù)器上處理,籍此提供大量用戶并發(fā)訪問(wèn)服務(wù),實(shí)現(xiàn)并行處理的方法,就是負(fù)載平衡( LB,Load Balancing)思想[4]。

Windows下網(wǎng)絡(luò)負(fù)載平衡使得單個(gè)子網(wǎng)上的所有集群主機(jī)可以同時(shí)檢測(cè)集群IP地址的傳入網(wǎng)絡(luò)通信。在每個(gè)集群主機(jī)上,網(wǎng)絡(luò)負(fù)載平衡(NLB)作為Windows網(wǎng)絡(luò)驅(qū)動(dòng)程序運(yùn)行,充當(dāng)集群適配器驅(qū)動(dòng)程序和TCP/IP堆棧間的過(guò)濾器,以便在主機(jī)間分配通信,網(wǎng)絡(luò)負(fù)載平衡的操作對(duì)于TCP/IP網(wǎng)絡(luò)堆棧是透明的,因此作為運(yùn)行于TCP/IP之上的操作系統(tǒng)內(nèi)核和服務(wù)器應(yīng)用程序來(lái)說(shuō),它們根本不知道NLB的存在。

Windows網(wǎng)絡(luò)負(fù)載平衡(NLB)的局限性有:一個(gè)集群中最多支持32臺(tái)服務(wù)器;三層交換機(jī)必須為集群成員建立一個(gè) VLAN,并且這個(gè)VLAN 必須配置為在二層模式下運(yùn)行才能夠與NLB一起使用,但并不是所有三層交換機(jī)都支持此項(xiàng)功能;發(fā)往NLB集群的所有數(shù)據(jù)包會(huì)在交換機(jī)上的所有端口上廣播而造成數(shù)據(jù)“洪水”。

按照“干部在線”的業(yè)務(wù)需求,系統(tǒng)的服務(wù)器集群的硬件結(jié)構(gòu)如圖1所示,多個(gè)Web服務(wù)器組成一個(gè)Web服務(wù)集群,多個(gè)流媒體服務(wù)器組成流媒體服務(wù)集群,所有的課件資源均存放在NAS陣列上。

集群采用Windows 2008 R2的網(wǎng)絡(luò)負(fù)載平衡技術(shù)(NLB)。每個(gè)Web服務(wù)器都是Windows 2008R2+IIS,每個(gè)流媒體服務(wù)器采用Windows 2008R2+Windows Media Service。Web服務(wù)器集群和流媒體服務(wù)器集群分別有一個(gè)虛擬的IP地址稱為“集群IP地址”,集群IP地址是該集群中所有計(jì)算機(jī)共享的地址,且每臺(tái)服務(wù)器還有一個(gè)惟一專用的IP地址。

2 分布式架構(gòu)

.NET環(huán)境下的分層體系結(jié)構(gòu), 是指在原來(lái)的兩層結(jié)構(gòu)客戶端與數(shù)據(jù)服務(wù)器端之間加入了一個(gè)組件層,也稱為“中間層”,將應(yīng)用程序的業(yè)務(wù)規(guī)則、數(shù)據(jù)訪問(wèn)、合法性校驗(yàn)等工作放到中間層進(jìn)行處理。這樣系統(tǒng)將具有顯示操作層(客戶端)、業(yè)務(wù)邏輯層(服務(wù)器后臺(tái)代碼)和數(shù)據(jù)層(數(shù)據(jù)庫(kù)服務(wù))等三個(gè)層次。三層架構(gòu)如圖2所示。

山西干部在線軟件系統(tǒng)采用三層(3-layer)架構(gòu)設(shè)計(jì),該系統(tǒng)基于.net4.0用C#開(kāi)發(fā),軟件解決方案如圖3所示,具體說(shuō)明如表1所示。

軟件采用兩層(2-ties)物理部署,如圖4所示,即表示層(Web)和業(yè)務(wù)邏輯層(BLL)運(yùn)行在Web服務(wù)器群中,數(shù)據(jù)層(DAL)和數(shù)據(jù)庫(kù)運(yùn)行在數(shù)據(jù)服務(wù)器群中(不能被外網(wǎng)訪問(wèn)),邏輯層(BLL)通過(guò)WCF技術(shù)跨物理邊界(服務(wù)器)訪問(wèn)數(shù)據(jù)層(DAL),從而實(shí)現(xiàn)軟件層面上的分布式計(jì)算。

GbzxDataService、DAL、DBUtility、IDAL、Model以及數(shù)據(jù)庫(kù)系統(tǒng)SQL Server2005/2008部署在數(shù)據(jù)服務(wù)器上,完成數(shù)據(jù)的存取,對(duì)外公布WCF服務(wù),邏輯層通過(guò)調(diào)用公布的WCF服務(wù)完成數(shù)據(jù)存取。Web、BLL、DALFactory、IDAL、Model部署在Web服務(wù)器上。按照業(yè)務(wù)需求,服務(wù)器組可以隨時(shí)增刪。

3 內(nèi)存緩存(Memory Cache)技術(shù)

本系統(tǒng)有二十多萬(wàn)用戶,按5%的上線率就有一萬(wàn)的并發(fā)量,這樣無(wú)論是Web服務(wù)器還是數(shù)據(jù)庫(kù)服務(wù)器,負(fù)荷都比較大。尤其是打開(kāi)主頁(yè)的時(shí)候,速度會(huì)很慢。

首先來(lái)分析一下主頁(yè)數(shù)據(jù)構(gòu)成,主頁(yè)共分11個(gè)區(qū)域,這些區(qū)域的數(shù)據(jù)都從數(shù)據(jù)庫(kù)中讀取,經(jīng)過(guò)大量計(jì)算(在線數(shù)據(jù))獲得。即打開(kāi)主頁(yè)時(shí)就要讀取并計(jì)算這些數(shù)據(jù),計(jì)算量很大,用時(shí)很長(zhǎng),尤其在大并發(fā)量的時(shí)候,打開(kāi)主頁(yè)的速度會(huì)很慢,用戶體驗(yàn)很不好。但這些數(shù)據(jù)大多有個(gè)共同點(diǎn):更新頻率很低。因此采用內(nèi)存緩存技術(shù),可大大減輕服務(wù)器尤其是數(shù)據(jù)庫(kù)服務(wù)器的負(fù)荷,極大地提升性能,前端用戶體驗(yàn)也很好。

內(nèi)存緩存(Memory Cache)是系統(tǒng)中的一塊特殊的內(nèi)存區(qū)域。其作用是在一個(gè)特定的時(shí)間段內(nèi)保存數(shù)據(jù),當(dāng)指定的時(shí)限到期后,緩存會(huì)被釋放,成為“過(guò)期”。因此,在緩存有效時(shí),無(wú)論前端有多少用戶,他們并發(fā)打開(kāi)主頁(yè)時(shí),數(shù)據(jù)直接從緩存獲取,根本不會(huì)讀數(shù)據(jù)庫(kù)。假設(shè)前端有1萬(wàn)用戶,如果不采用緩存技術(shù),他們打開(kāi)主頁(yè)需要訪問(wèn)11萬(wàn)次數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)服務(wù)器負(fù)擔(dān)很重。內(nèi)存緩存在指定的時(shí)限有效,當(dāng)緩存過(guò)期后,用戶就需要訪問(wèn)數(shù)據(jù)庫(kù),但訪問(wèn)的同時(shí)緩存被重新加載,在此之后的指定時(shí)限內(nèi)其他用戶就只會(huì)訪問(wèn)緩存而不需訪問(wèn)數(shù)據(jù)庫(kù)。

緩存技術(shù)在極大提升性能的同時(shí)減輕了數(shù)據(jù)庫(kù)的負(fù)擔(dān),但同時(shí)也有很大弊端,即犧牲了實(shí)時(shí)性。比如,緩存的時(shí)限是10分鐘,在時(shí)限內(nèi),用戶看到的是10分鐘之前的情況,因?yàn)橹挥?0分鐘到期后,緩存才被刷新。為了提升數(shù)據(jù)的實(shí)時(shí)性,我們的系統(tǒng)采用了多緩存不同時(shí)限的策略?!霸诰€數(shù)據(jù)”設(shè)置為5分鐘,“導(dǎo)航欄”、“友情鏈接”和“其他欄目”等變化很小則緩存時(shí)限設(shè)為20分鐘,其他欄目設(shè)置為10分鐘。

4 性能分析

圖5是單Web服務(wù)器在800多人并發(fā)訪問(wèn)的情況下的性能監(jiān)視圖,從圖5可以看出,處理器已經(jīng)超過(guò)80%,而剩余內(nèi)存小于10%,硬盤的使用率達(dá)到了60%。

圖6是900人在15臺(tái)Web服務(wù)器并發(fā)的情況下的性能監(jiān)視圖,從圖6可以看出處理器不超過(guò)10%,而內(nèi)存使用率也在10%左右,硬盤的使用率在1%左右。

5 結(jié)束語(yǔ)

為了解決多用戶并發(fā)所帶來(lái)的問(wèn)題,提高系統(tǒng)性能,我們?cè)诟刹吭诰€系統(tǒng)中采用了在服務(wù)器集群下的負(fù)載均衡策略,將工作任務(wù)相對(duì)均衡地分配到各個(gè)節(jié)點(diǎn)上執(zhí)行;另外采用內(nèi)存緩存機(jī)制,通過(guò)優(yōu)先讀取內(nèi)存中的緩存數(shù)據(jù)以減少對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)次數(shù),以此減輕數(shù)據(jù)庫(kù)負(fù)載。軟件采用三層架構(gòu)來(lái)提高系統(tǒng)的吞吐量。目前該系統(tǒng)運(yùn)行正常,用戶體驗(yàn)良好。在服務(wù)器集群下的負(fù)載均衡策略和用內(nèi)存緩存機(jī)制相結(jié)合的技術(shù),對(duì)于并發(fā)量很大的同類型網(wǎng)站具有推廣和示范作用。但服務(wù)器集群的投入是需要充足的資金保障的,而緩存技術(shù)在極大提升性能的同時(shí)犧牲了實(shí)時(shí)性,因此如何取得高性價(jià)比,還需要我們今后在實(shí)踐中不斷地摸索。

參考文獻(xiàn):

[1] 戴剛.服務(wù)器集群關(guān)鍵技術(shù)的研究與實(shí)現(xiàn)[D].國(guó)防科學(xué)技術(shù)大學(xué)圖書

館,2002.

[2] 葉萃,張松.一種終端服務(wù)器內(nèi)存優(yōu)化方法[J].微電子學(xué)與計(jì)算,

2007.3.

[3] 叢慶,沈夏炯.普招網(wǎng)報(bào)系統(tǒng)中服務(wù)器集群與緩存的研究[J].電腦知

識(shí)與技術(shù),2009.12.

[4] 周瑩蓮,劉甫.服務(wù)器負(fù)載均衡技術(shù)研究[J].計(jì)算機(jī)與數(shù)字工程,

2010.4.

猜你喜歡
負(fù)載均衡吞吐量
2017年6月長(zhǎng)三角地區(qū)主要港口吞吐量
集裝箱化(2017年7期)2017-08-23 10:53:40
2017年4月長(zhǎng)三角地區(qū)主要港口吞吐量
集裝箱化(2017年5期)2017-07-06 14:55:16
2016年10月長(zhǎng)三角地區(qū)主要港口吞吐量
集裝箱化(2016年11期)2017-03-29 16:15:48
2016年11月長(zhǎng)三角地區(qū)主要港口吞吐量
集裝箱化(2016年12期)2017-03-20 08:32:27
Linux負(fù)載均衡集群技術(shù)在網(wǎng)絡(luò)服務(wù)器中的應(yīng)用
Oracle MAA在汽車行業(yè)電子政務(wù)平臺(tái)中的應(yīng)用
異構(gòu)環(huán)境下改進(jìn)的LATE調(diào)度算法
基于負(fù)載均衡的云資源調(diào)度策略研究
多站點(diǎn)同步更新系統(tǒng)的設(shè)計(jì)
科技視界(2016年3期)2016-02-26 20:16:57
模糊理論在Ad hoc網(wǎng)絡(luò)通信領(lǐng)域的應(yīng)用
科技視界(2015年25期)2015-09-01 16:07:00
三门峡市| 收藏| 上栗县| 七台河市| 黄浦区| 元氏县| 赤壁市| 贺兰县| 博兴县| 大关县| 同仁县| 体育| 珲春市| 义马市| 浪卡子县| 昌江| 广河县| 岐山县| 宜川县| 团风县| 山东省| 临海市| 阳城县| 岑巩县| 桑植县| 绍兴县| 五河县| 西安市| 广德县| 台北县| 德庆县| 桃园市| 黑山县| 百色市| 敖汉旗| 郯城县| 雷波县| 荣昌县| 新密市| 天台县| 万荣县|