• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Asp.net的高考填報(bào)志愿系統(tǒng)高并發(fā)負(fù)載解決方案

      2013-04-29 00:44:03李曉寧張浩
      科技資訊 2013年9期
      關(guān)鍵詞:優(yōu)化

      李曉寧 張浩

      摘 要:本文以當(dāng)前全國(guó)各省普通高考網(wǎng)上填報(bào)系統(tǒng)因并發(fā)量過高而極易造成網(wǎng)站的癱瘓的現(xiàn)象著手,設(shè)計(jì)了普通高校招生網(wǎng)上填報(bào)志愿系統(tǒng)的高并發(fā)負(fù)載解決方案。本系統(tǒng)在盡可能的采用傳統(tǒng)的網(wǎng)站高并發(fā)負(fù)載優(yōu)化策略的同時(shí),還針對(duì)系統(tǒng)本身的特點(diǎn)從宏觀架構(gòu)及微觀技術(shù)實(shí)現(xiàn)手段上都加以研究分析,制定針對(duì)網(wǎng)上填報(bào)志愿系統(tǒng)的高負(fù)載解決方案。宏觀上本系統(tǒng)利用了面向服務(wù)的程序設(shè)計(jì)方式將系統(tǒng)分為網(wǎng)站程序?qū)印?shù)據(jù)緩存層、數(shù)據(jù)庫層的三層進(jìn)行設(shè)計(jì),實(shí)現(xiàn)了系統(tǒng)中應(yīng)用程序、數(shù)據(jù)操作、數(shù)據(jù)存儲(chǔ)上的物理及邏輯分離,因此系統(tǒng)應(yīng)對(duì)高并發(fā)負(fù)載具有了分布式解決能力,實(shí)現(xiàn)了系統(tǒng)的可擴(kuò)展性。微觀上,本系統(tǒng)利用了目前許多提高系統(tǒng)性能的新技術(shù)新方法,使網(wǎng)站程序運(yùn)行具有了高效性。本系統(tǒng)的有以下幾個(gè)特點(diǎn)及創(chuàng)新:(1)架設(shè)數(shù)據(jù)緩存庫服務(wù)器,建立完善的內(nèi)存數(shù)據(jù)緩存管理機(jī)制,利用面向服務(wù)的技術(shù)進(jìn)行網(wǎng)站程序和數(shù)據(jù)緩存之間的通訊。(2)WEB程序與數(shù)據(jù)庫隔離,增加系統(tǒng)的安全性。(3)軟件程序負(fù)載均衡與硬件負(fù)載均衡結(jié)合應(yīng)對(duì)大并發(fā)訪問。(4)WEB服務(wù)器設(shè)置內(nèi)存字典,使用哈希表進(jìn)行數(shù)據(jù)映射,解決頻繁數(shù)據(jù)查詢。(5)網(wǎng)站程序?qū)?、?shù)據(jù)緩存層、數(shù)據(jù)庫層的分層結(jié)構(gòu)設(shè)計(jì),方便系統(tǒng)擴(kuò)展。通過測(cè)試和實(shí)踐證明,使用多種方法對(duì)WEB程序進(jìn)行優(yōu)化設(shè)計(jì)及把內(nèi)存數(shù)據(jù)庫作為向數(shù)據(jù)庫中寫入數(shù)據(jù)前的緩沖的思路,能很好的增加網(wǎng)上填報(bào)志愿系統(tǒng)一類的大數(shù)據(jù)量的網(wǎng)上應(yīng)用程序的吞吐能力,從而完成高并發(fā)負(fù)載的網(wǎng)上填報(bào)志愿需求。

      關(guān)鍵詞:高并發(fā) 負(fù)載 WCF 內(nèi)存數(shù)據(jù)庫 優(yōu)化

      中圖分類號(hào):TP319 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2013)03(c)-0043-05

      隨著近年來教育部對(duì)“陽光工程”的施行和“平行志愿投檔”的推廣,加強(qiáng)了我國(guó)高校招生的公平性和透明性。其中“填報(bào)志愿”是考生選擇大學(xué)的方式,決定著考生一生的發(fā)展道路,因此確保志愿信息采集的公平性、及時(shí)性、準(zhǔn)確性、安全性也成為了各級(jí)招生部門工作的重要環(huán)節(jié)。目前招生部門采用的高考志愿信息采集主要有兩種方式:一是的傳統(tǒng)的涂卡方式,招生部門發(fā)放給考生志愿信息采集卡,由考生根據(jù)學(xué)校和專業(yè)代碼填圖志愿后,統(tǒng)一利用光標(biāo)閱讀機(jī)(OMR)進(jìn)行讀卡;二是開發(fā)網(wǎng)上填報(bào)志愿系統(tǒng)(以下簡(jiǎn)稱網(wǎng)報(bào)系統(tǒng))利用網(wǎng)頁進(jìn)行志愿信息采集。網(wǎng)上填報(bào)志愿針對(duì)過去的錄卡報(bào)志愿網(wǎng)報(bào)系統(tǒng)有以下幾個(gè)方面的優(yōu)勢(shì)。

      (1)直觀、高效。

      考生通過通過互聯(lián)網(wǎng)登錄網(wǎng)報(bào)系統(tǒng)??忌梢栽谙吕藛沃凶龀鲞x擇,填入學(xué)校和專業(yè)代碼即可。部分操作熟練的考生十分鐘之內(nèi)就可以完成志愿填報(bào)。

      (2)簡(jiǎn)化流程。

      采用讀卡填報(bào)志愿方式流程是讓每位考生向老師索取志愿卡后填涂信息,再到招生辦讀出志愿信息,回來后考生改錯(cuò),再由招辦工作人員重新改正,然后考生確認(rèn)信息,這些環(huán)節(jié)不能有半點(diǎn)差錯(cuò)。網(wǎng)上報(bào)志愿簡(jiǎn)化了這些流程,考生可以在任何接入互聯(lián)網(wǎng)的電腦上填報(bào)志愿并在網(wǎng)上確認(rèn)。

      (3)錯(cuò)誤率減少。

      通過涂卡的方式報(bào)志愿時(shí),考生先查找好報(bào)考的院校及專業(yè)代碼,然后根據(jù)代碼的數(shù)字在信息卡上相應(yīng)的代表位置涂黑,由于填涂過程不能直觀的反應(yīng)出所填報(bào)的院校及專業(yè),所以很容易因涂錯(cuò)位置而發(fā)生填報(bào)錯(cuò)誤。通過網(wǎng)上報(bào)志愿考生所錄入的院校及專業(yè)的代碼可以及時(shí)的進(jìn)行翻譯和校驗(yàn),大大減少了填報(bào)錯(cuò)誤的發(fā)生。

      采用網(wǎng)上填報(bào)志愿是發(fā)展必然趨勢(shì),也是互聯(lián)網(wǎng)高速發(fā)展及計(jì)算機(jī)普及的產(chǎn)物。隨著部分省份對(duì)網(wǎng)上填報(bào)志愿的率先嘗試并取得較好的社會(huì)反響,網(wǎng)上填報(bào)志愿已成為考生志愿信息采集的最好方法。同時(shí),進(jìn)行網(wǎng)上填報(bào)志愿的省份也都面臨著一個(gè)嚴(yán)峻的問題:由于考生人數(shù)多,并且訪問時(shí)間集中同時(shí)單個(gè)考生修改及查詢頻率又高,極高的瞬時(shí)并發(fā)操作請(qǐng)求致使系統(tǒng)和數(shù)據(jù)庫超負(fù)荷運(yùn)行,系統(tǒng)不能及時(shí)響應(yīng)訪問請(qǐng)求,舊的請(qǐng)求還未處理完,新的訪問請(qǐng)求又到來,從而導(dǎo)致服務(wù)器處于假死狀態(tài)。一旦進(jìn)入假死狀態(tài),用戶的操作就會(huì)得不到響應(yīng),頁面長(zhǎng)時(shí)間打不開會(huì)延誤考生填報(bào)志愿,造成不良的社會(huì)影響,甚至致使考生不能完成填報(bào)志愿造成重大責(zé)任事故。

      如何有效的對(duì)系統(tǒng)進(jìn)行高并發(fā)負(fù)載已成為網(wǎng)報(bào)系統(tǒng)的瓶頸和使用上的軟肋,也制約了網(wǎng)上填報(bào)志愿在全國(guó)范圍內(nèi)的推廣,目前各省教育考試部門都在針對(duì)這一問題進(jìn)行積極的探索。我們就對(duì)這一問題在Asp.net平臺(tái)上提出解決方案:根據(jù)木桶原理,要想提高系統(tǒng)的整體能力就需要找到系統(tǒng)的瓶頸加以解決。我們首先分析了整個(gè)系統(tǒng)的結(jié)構(gòu),由于網(wǎng)報(bào)系統(tǒng)需要響應(yīng)大量的考生訪問,并且每個(gè)考生的訪問都要進(jìn)行大量的數(shù)據(jù)查詢存取操作,因此網(wǎng)站不同功能之間的處理能力和速度上的差別也就成為了系統(tǒng)存在的瓶頸。本著為處理壓力較大的模塊增加擴(kuò)展,為處理速度較慢的模塊設(shè)計(jì)緩沖這一理念,我們對(duì)系統(tǒng)中的應(yīng)用程序、數(shù)據(jù)操作和數(shù)據(jù)存儲(chǔ)這三大應(yīng)用功能進(jìn)行了分層設(shè)計(jì),將系統(tǒng)分為網(wǎng)站程序?qū)?、緩存?shù)據(jù)庫層和數(shù)據(jù)庫層。網(wǎng)站程序處理壓力大,該層要進(jìn)行可擴(kuò)展性設(shè)計(jì);數(shù)據(jù)庫層存在速度較慢,該層要由數(shù)據(jù)緩存層進(jìn)行緩沖設(shè)計(jì),(如圖1)所示。下面分別對(duì)各層的設(shè)計(jì)進(jìn)行分析。

      1 網(wǎng)站程序?qū)?/p>

      該層使用最新的ASP.NET技術(shù)進(jìn)行開發(fā),部署在WEB服務(wù)器上。肩負(fù)著同考生進(jìn)行交互,實(shí)現(xiàn)志愿填報(bào)業(yè)務(wù)邏輯;完成志愿代碼翻譯查詢,通過WCF服務(wù)從數(shù)據(jù)緩存層中讀取數(shù)據(jù)。由于該層的負(fù)載壓力大,因此需要很好的橫向擴(kuò)展設(shè)計(jì)。

      (1)負(fù)載均衡。

      同時(shí)由于程序的主要負(fù)載都集中在網(wǎng)站程序上,為了應(yīng)對(duì)大并發(fā)的負(fù)載,我們把網(wǎng)站程序在每臺(tái)WEB服務(wù)器上都設(shè)計(jì)為獨(dú)立運(yùn)行,采用F5負(fù)載均衡設(shè)備為用戶訪問提供20分鐘的會(huì)話保持。這樣就為程序提高了良好的橫向擴(kuò)展性和可靠性,如果WEB服務(wù)出現(xiàn)負(fù)載飽和時(shí),只需添加服務(wù)器即可實(shí)現(xiàn)負(fù)載分流,(如圖2)所示。

      (2)內(nèi)存數(shù)據(jù)字典。

      在填報(bào)志愿過程中查詢最頻繁的就是計(jì)劃表,計(jì)劃庫表放著招生院校的層次、批次和其專業(yè)的科類、計(jì)劃性質(zhì)等信息,總記錄數(shù)為3萬條左右。通過計(jì)劃表查詢將考生填寫的院校編碼和專業(yè)編碼翻譯成院校名稱和專業(yè)名稱,并判斷考生是否將院校代碼和專業(yè)填錯(cuò)并提醒考生不要誤報(bào)達(dá)不到要求的專業(yè)浪費(fèi)報(bào)考機(jī)會(huì),因此計(jì)劃表能否正確、高效、快速的查詢對(duì)網(wǎng)報(bào)系統(tǒng)能否正常運(yùn)行起著至關(guān)重要的作用。以某省50萬考生來計(jì)算,對(duì)計(jì)劃表的查詢量達(dá)十一億次,顯然在集中的時(shí)間段內(nèi)應(yīng)對(duì)如此大量的查詢請(qǐng)求數(shù)據(jù)庫已經(jīng)很難負(fù)載。內(nèi)存數(shù)據(jù)字典,是將計(jì)劃表在程序首次運(yùn)行時(shí)加載到每臺(tái)WEB服務(wù)器內(nèi)存中,可供程序直接在內(nèi)存中訪問的數(shù)據(jù)集合。通過測(cè)試內(nèi)存的讀取速度為18000多M/S,寫入速度在15000左右(HP GX580服務(wù)器),而現(xiàn)在最好的固態(tài)硬盤讀取速度也就能到400多M/S,相對(duì)于磁盤內(nèi)存的數(shù)據(jù)讀寫速度要高出幾個(gè)數(shù)量級(jí)。所以從內(nèi)存中讀取數(shù)據(jù)相比從磁盤上讀取能夠極大地減少查詢時(shí)間提高應(yīng)用的性。

      2 數(shù)據(jù)緩存層

      在填報(bào)志愿過程中,按50萬考生每個(gè)考生可以填報(bào)8個(gè)批次,每個(gè)批次可以填報(bào)5所院校,其中1秒中有1000個(gè)考生在操作志愿數(shù)據(jù)的情況下計(jì)算,就要滿足1秒鐘內(nèi)在兩千多萬記錄中進(jìn)行四萬次數(shù)據(jù)修改操作的需求。面對(duì)苛刻的高并發(fā)負(fù)載需求,傳統(tǒng)數(shù)據(jù)庫很難實(shí)現(xiàn)。要完成如果高速的操作,IO速度極高的內(nèi)存將會(huì)是最合適的場(chǎng)所,所以需要自行開發(fā)內(nèi)存數(shù)據(jù)庫作為數(shù)據(jù)緩存層來實(shí)現(xiàn)這一需求。該層是整個(gè)網(wǎng)報(bào)系統(tǒng)的數(shù)據(jù)處理中心,部署在專門設(shè)立的緩存服務(wù)器上。數(shù)據(jù)緩存層運(yùn)行有一套完成的數(shù)據(jù)維護(hù)機(jī)制。實(shí)現(xiàn)增、刪、查、改的數(shù)據(jù)操作;實(shí)現(xiàn)監(jiān)聽、應(yīng)答的通訊機(jī)制;實(shí)現(xiàn)數(shù)據(jù)備份和回復(fù)功能。作為網(wǎng)站程序?qū)雍蛿?shù)據(jù)庫層的速度差異緩沖,該層也就成為了系統(tǒng)中數(shù)據(jù)操作、交互的核心。

      構(gòu)建內(nèi)存數(shù)據(jù)緩存層后,我們對(duì)內(nèi)存數(shù)據(jù)庫和SQLSERVER數(shù)據(jù)庫進(jìn)行了2萬次數(shù)據(jù)讀寫效率對(duì)比測(cè)試,如圖3所示。

      設(shè)計(jì)時(shí)我們需要考慮以下幾個(gè)方面。

      (1)數(shù)據(jù)操作模式。

      作為內(nèi)存數(shù)據(jù)庫和前面的內(nèi)存字典不一樣,不僅僅要完成對(duì)數(shù)據(jù)的查詢請(qǐng)求,還要完成對(duì)數(shù)據(jù)的增加、刪除、修改的操作。

      (2)通訊機(jī)制。

      如果沒有通訊內(nèi)存數(shù)據(jù)庫就是聾子和啞巴,對(duì)外是發(fā)揮不了任何作用的,因此在內(nèi)存數(shù)據(jù)庫中還要建立對(duì)請(qǐng)求的監(jiān)聽和應(yīng)答機(jī)制。

      (3)數(shù)據(jù)備份。

      內(nèi)存作為高速暫時(shí)存儲(chǔ)器,其數(shù)據(jù)在斷電后會(huì)立刻丟失,因此要將內(nèi)存中的數(shù)據(jù)寫入到數(shù)據(jù)庫中并妥善存儲(chǔ)在硬盤上才能確保數(shù)據(jù)不會(huì)丟失。

      我們將上述功能通過數(shù)據(jù)緩存、通訊、調(diào)度三個(gè)模塊來實(shí)現(xiàn),這些模塊的分工如下。

      (1)數(shù)據(jù)緩存模塊。

      該模塊負(fù)責(zé)在內(nèi)存中存放數(shù)據(jù),并在運(yùn)行期間維護(hù)數(shù)據(jù)的完整性;數(shù)據(jù)緩存層初始化運(yùn)行時(shí)從數(shù)據(jù)庫中加載數(shù)據(jù)并建立索引;提供數(shù)據(jù)查詢接口函數(shù);定時(shí)將改動(dòng)的數(shù)據(jù)以xml文件保存到硬盤上供調(diào)度程序?qū)懭霐?shù)據(jù)庫。該模塊是內(nèi)存數(shù)據(jù)庫的實(shí)現(xiàn)基礎(chǔ),由于這些功是在內(nèi)存中實(shí)現(xiàn),需要考慮以下幾個(gè)方面。

      ①數(shù)據(jù)占用空間。

      在志愿表中一條考生志愿信息經(jīng)計(jì)算形成數(shù)據(jù)對(duì)象存儲(chǔ)后每條記錄的大小為1K左右。按50萬考生每個(gè)考生填報(bào)8個(gè)批次,每批報(bào)5所院校計(jì)算,內(nèi)存數(shù)據(jù)庫中所存儲(chǔ)的數(shù)據(jù)最大容量為22400000×1K,即22.4GB。加上windows2008和WCF服務(wù)需要占用的2~3G內(nèi)存空間,我們需求的最低內(nèi)存容量為26GB。

      ②數(shù)據(jù)安全。

      內(nèi)存作為暫存器,斷電后造成數(shù)據(jù)丟失,針對(duì)該問題我們采用了定時(shí)增量日志備份來完成,即內(nèi)存數(shù)據(jù)庫每隔1秒鐘(這個(gè)時(shí)間間隔可以任意設(shè)置)會(huì)將每次對(duì)數(shù)據(jù)進(jìn)行的修改操作以XML格式存儲(chǔ)為操作日志文件。如果發(fā)生斷電事故,最多會(huì)丟失1秒鐘內(nèi)未及時(shí)保存到磁盤的操作日志,因此可以將事故影響控制在可控范圍之內(nèi)。

      ③存放形式。

      內(nèi)存中數(shù)據(jù)存放的方式有很多種選擇,如數(shù)組、鏈表、隊(duì)列、哈希表、字典等。通過對(duì)數(shù)據(jù)操作的分析,緩存服務(wù)形式就是以最快的速度響應(yīng)網(wǎng)站程序?qū)拥淖x寫請(qǐng)求,所以最重要的因素就是從海量數(shù)據(jù)中定位單條數(shù)據(jù)的速度,因此哈希表是承載數(shù)據(jù)的最佳形式。

      ④數(shù)據(jù)查詢。

      內(nèi)存表在建立后查詢操作是通過在哈希表中建立關(guān)鍵碼來完成的,查詢效率很高。在考生數(shù)據(jù)表中,我們通過初始化在具有唯一性的考生號(hào)來設(shè)立關(guān)鍵碼并預(yù)留查函數(shù)接口來構(gòu)建查詢語句,根據(jù)通訊模塊調(diào)用傳遞的參數(shù)篩選符合條件的數(shù)據(jù)并返回。

      (2)通訊模塊。

      通訊模塊實(shí)現(xiàn)了數(shù)據(jù)緩存層與網(wǎng)絡(luò)程序?qū)又g的交互,因此該模塊最為關(guān)鍵之處就是要建立一個(gè)可靠、高效的監(jiān)聽、應(yīng)答機(jī)制。我們采用了WCF服務(wù)去完成這種監(jiān)聽?wèi)?yīng)答機(jī)制。WCF(Windows Communication Foundation)是由微軟公司發(fā)展的一組數(shù)據(jù)通信的應(yīng)用程序開發(fā)接口,WCF構(gòu)建了一個(gè)在互聯(lián)系統(tǒng)中實(shí)現(xiàn)各個(gè)應(yīng)用程序之間通信的分布式框架。在該框架內(nèi)數(shù)據(jù)緩存層的通訊模塊與網(wǎng)站程序?qū)拥臄?shù)據(jù)訪問類之間通過契約實(shí)現(xiàn)數(shù)據(jù)請(qǐng)求操作,與訪問請(qǐng)求發(fā)起者無關(guān),從而使網(wǎng)站程序?qū)拥拿颗_(tái)服務(wù)器進(jìn)行的訪問操作都是相互的獨(dú)立的,為網(wǎng)站程序?qū)拥目蓴U(kuò)展性提供了保障。

      (3)調(diào)度模塊。

      該模塊負(fù)責(zé)數(shù)據(jù)緩存增量日志的定時(shí)備份;負(fù)責(zé)將數(shù)據(jù)緩存模塊保存的數(shù)據(jù)改動(dòng)文件寫入到數(shù)據(jù)庫層中,將數(shù)據(jù)持久化。調(diào)度模塊負(fù)責(zé)內(nèi)存數(shù)據(jù)庫與SQLSEVER數(shù)據(jù)庫之間的同步,是數(shù)據(jù)緩存層與數(shù)據(jù)庫層之間的橋梁。

      調(diào)度模塊的運(yùn)行機(jī)制是:數(shù)據(jù)緩存模塊每1秒鐘將發(fā)生變化的數(shù)據(jù)以一個(gè)XML文件的形式寫入磁盤中,調(diào)度模塊每隔5秒中(時(shí)間可以自行設(shè)定)將這些文件讀取寫并將這些操作寫入數(shù)據(jù)庫,然后這些XML文件壓縮打包后移動(dòng)到磁盤中設(shè)定的備份目錄中。在大并發(fā)訪問發(fā)生時(shí),因數(shù)據(jù)庫操作寫入速度遠(yuǎn)比不上內(nèi)存數(shù)據(jù)庫的操作速度,這時(shí)會(huì)發(fā)生待寫入XML文件的積攢的現(xiàn)象,但是只要有內(nèi)存數(shù)據(jù)庫操作量較小于數(shù)據(jù)庫寫入的時(shí)段出現(xiàn),這部分積攢的操作文件就可以按時(shí)間順序被逐漸寫入。通過這樣的原理,數(shù)據(jù)緩存層為數(shù)據(jù)庫層起到了緩沖的作用。

      通過這樣的運(yùn)行機(jī)制數(shù)據(jù)緩存層會(huì)在運(yùn)行過程中就會(huì)產(chǎn)生一個(gè)可操作的數(shù)據(jù)庫副本和一個(gè)日志副本,這時(shí)如果數(shù)據(jù)庫發(fā)生故障,我們可以將保存的xml文件解壓后重新寫入到數(shù)據(jù)中,為系統(tǒng)的數(shù)據(jù)安全性提供了雙重保障。

      由于數(shù)據(jù)緩存層的操作量會(huì)很大,要將這些操作保存在文件中,這就涉及到內(nèi)存對(duì)象序列化。使用xml序列化內(nèi)存對(duì)象,結(jié)果簡(jiǎn)潔,讀寫效率高,同時(shí)也便于在一個(gè)文件中序列化多條數(shù)據(jù),如圖4所示。

      3 數(shù)據(jù)庫層

      在網(wǎng)報(bào)系統(tǒng)中,由于采用了數(shù)據(jù)緩存層的設(shè)計(jì),數(shù)據(jù)操作壓力集中在了內(nèi)存數(shù)據(jù)庫中,而SQLSERVER僅作為數(shù)據(jù)持久存儲(chǔ)和少量的管理用數(shù)據(jù)查詢挖掘使用,因此網(wǎng)報(bào)系統(tǒng)中僅使用了一臺(tái)服務(wù)器作為數(shù)據(jù)庫服務(wù)器使用。

      4 系統(tǒng)測(cè)試

      構(gòu)建測(cè)試環(huán)境

      為了詳盡的對(duì)網(wǎng)報(bào)系統(tǒng)進(jìn)行測(cè)試,確保系統(tǒng)的穩(wěn)定運(yùn)行。我們構(gòu)建一個(gè)較為接近實(shí)際情況的運(yùn)行實(shí)驗(yàn)環(huán)境。該環(huán)境包括以下幾點(diǎn)。

      (1)網(wǎng)報(bào)系統(tǒng)部署:測(cè)試環(huán)境中使用了7臺(tái)HP服務(wù)器。分配為:WEB服務(wù)器4臺(tái),部署相同的網(wǎng)站程序?qū)?;WCF服務(wù)器2臺(tái),一臺(tái)部署通訊模塊和數(shù)據(jù)緩存模塊,一臺(tái)部署調(diào)度模塊并且用于XML文件備份;數(shù)據(jù)庫服務(wù)器1臺(tái),部署數(shù)據(jù)庫層。服務(wù)器部署情況如圖5所示。

      (2)網(wǎng)絡(luò)部署:采用實(shí)際應(yīng)用狀態(tài)下網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),通過F5對(duì)WEB服務(wù)器進(jìn)行負(fù)載均衡,具體網(wǎng)絡(luò)結(jié)構(gòu)如圖6所示。

      (3)測(cè)試服務(wù)器:采用1臺(tái)HP580服務(wù)器,用于測(cè)試軟件安裝,測(cè)試工具LoadRunner (V8.1)。

      (4)測(cè)試方法:本次測(cè)試包括功能測(cè)試和性能測(cè)試。

      功能測(cè)試:即黑盒測(cè)試,測(cè)試人員在了解被測(cè)評(píng)目標(biāo)的功能規(guī)格、高層設(shè)計(jì)和操作規(guī)范等的基礎(chǔ)上,測(cè)試被測(cè)系統(tǒng)的可用性。

      性能測(cè)試:對(duì)系統(tǒng)在多種并發(fā)連接數(shù)情況下的處理能力進(jìn)行測(cè)試。本次測(cè)試主要采用Dynamic workload(動(dòng)態(tài)負(fù)載模型)逐步增加并發(fā)用戶數(shù),給系統(tǒng)逐步加載壓力,并且讓系統(tǒng)在該負(fù)載條件下持續(xù)運(yùn)行一段時(shí)間,然后逐漸減少并發(fā)用戶數(shù),檢驗(yàn)被測(cè)系統(tǒng)是否能夠穩(wěn)定運(yùn)行,同時(shí)監(jiān)測(cè)Web服務(wù)器和緩存服務(wù)器的性能。

      志愿填報(bào)測(cè)試。

      (1)測(cè)試目的。

      分別測(cè)試從網(wǎng)站程序?qū)觾?nèi)網(wǎng)單臺(tái)web服務(wù)器接入和外網(wǎng)4臺(tái)WEB服務(wù)器負(fù)載均衡接入網(wǎng)上填報(bào)志愿系統(tǒng),測(cè)試在多用戶并發(fā)登錄時(shí)的處理能力。

      (2)測(cè)試步驟。

      ①?gòu)膬?nèi)網(wǎng)單臺(tái)WEB服務(wù)器接入網(wǎng)報(bào)系統(tǒng),驗(yàn)證系統(tǒng)“志愿填報(bào)和修改”功能可用。

      ②利用LoadRunner錄制并保存為“tiaobao”的腳本,對(duì)腳本中實(shí)時(shí)參數(shù)VIEWSTATE和考生考號(hào)進(jìn)行參數(shù)化。

      ③啟動(dòng)LoadRunner負(fù)載生成器,加載“tianbao”腳本,設(shè)置并發(fā)用戶數(shù)為200,設(shè)置持續(xù)運(yùn)行時(shí)間為“5 min”,并且選擇“運(yùn)行前初始化所有Vuser”。

      ④執(zhí)行負(fù)載測(cè)試,運(yùn)行完成后,啟動(dòng)“Mercury LoadRunner Analysis”生成并保存測(cè)試結(jié)果。

      ⑤依次調(diào)整步驟③中的并發(fā)用戶數(shù)為200、500、1000、1500、2000、2500,并分別重復(fù)步驟③~步驟④。

      ⑥從外網(wǎng)通過F5負(fù)載均衡4臺(tái)WEB服務(wù)器接入網(wǎng)報(bào)系統(tǒng),并分別重復(fù)步驟②~步驟⑤,由于會(huì)話保持策略會(huì)持續(xù)將訪問指向同一臺(tái)服務(wù)器,此時(shí)將會(huì)話保持和session驗(yàn)證均去掉,采用隨機(jī)發(fā)牌模式測(cè)試。

      測(cè)試結(jié)果如表1所示,事物響應(yīng)時(shí)間對(duì)比如圖7、8所示。

      5 測(cè)試結(jié)果分析

      測(cè)試期間在上述壓力條件下,從內(nèi)網(wǎng)單臺(tái)服務(wù)器接入,占用了200 Mbps的帶寬,服務(wù)器CPU滿負(fù)荷運(yùn)行,系統(tǒng)運(yùn)行正常。從外網(wǎng)負(fù)載均衡接入,此時(shí)由4臺(tái)服務(wù)器共同負(fù)載,占用了500 Mbps的帶寬,服務(wù)器CPU資源有富余,平均事務(wù)響應(yīng)時(shí)間遠(yuǎn)低于內(nèi)網(wǎng),但性能沒有出現(xiàn)理論上的4倍提升,由此可見網(wǎng)絡(luò)設(shè)備會(huì)帶來一定的效率損耗,應(yīng)用系統(tǒng)自身運(yùn)行正常。性能測(cè)試完成后,CPU和內(nèi)存占用均回落至正常水平,未出現(xiàn)內(nèi)存泄露現(xiàn)象。

      通過測(cè)試看出WCF數(shù)據(jù)緩存層成功的實(shí)現(xiàn)了高并發(fā)負(fù)載下的內(nèi)存數(shù)據(jù)庫功能,在數(shù)據(jù)庫操繁忙的情況下為數(shù)據(jù)庫起到了緩沖的作用。通過F5負(fù)載均衡設(shè)備成功實(shí)現(xiàn)了WEB服務(wù)器的負(fù)載均衡,雖然單臺(tái)WEB服務(wù)器有一定的效率損耗,但是卻帶來了網(wǎng)站程序?qū)拥目蓴U(kuò)展性,實(shí)戰(zhàn)狀態(tài)下如果系統(tǒng)出現(xiàn)負(fù)荷過高的情況,只需增加WEB服務(wù)器的數(shù)量即可實(shí)現(xiàn)系統(tǒng)性能的提升。

      6 結(jié)論

      實(shí)踐證明,對(duì)網(wǎng)報(bào)系統(tǒng)進(jìn)行分層,網(wǎng)站程序進(jìn)行可擴(kuò)展設(shè)計(jì)和把內(nèi)存數(shù)據(jù)庫作為向數(shù)據(jù)庫中寫入數(shù)據(jù)前的緩沖的思路,能很好的增加網(wǎng)上填報(bào)志愿系統(tǒng)一類的大數(shù)據(jù)量的網(wǎng)上應(yīng)用程序的吞吐能力,從而完成高并發(fā)負(fù)載的網(wǎng)上填報(bào)志愿需求。不足之處是,這種形式需要占用大量的內(nèi)存,對(duì)服務(wù)器內(nèi)存有一定的硬件要求。在方案思路的基礎(chǔ)上還可以對(duì)以下幾方面進(jìn)行完善。

      (1)考慮將數(shù)據(jù)緩存層轉(zhuǎn)化為分布式應(yīng)用系統(tǒng)從而增強(qiáng)其負(fù)載的數(shù)據(jù)量和安全性。

      (2)數(shù)據(jù)在內(nèi)存中的保存形式針對(duì)具體的業(yè)務(wù)應(yīng)用做進(jìn)一步的優(yōu)化,在性能上還有挖掘的潛力。

      (3)Xml數(shù)據(jù)文件在保存在磁盤上的操作可以考慮放在固態(tài)硬盤上可以能進(jìn)一步提高讀寫性能。

      參考文獻(xiàn)

      [1]奚江華.圣殿祭司的ASP.NET3.5開發(fā)詳解II[M].電子工業(yè)出版社,2008.

      [2]金益民.一種基于XML的WEB數(shù)據(jù)庫應(yīng)用模型研究及應(yīng)用[J].現(xiàn)代電子技術(shù),2004.

      [3]蔣金楠.WCF技術(shù)剖析[M].電子工業(yè)出版社,2009,6.

      [8]曾凱,曾斌,楊英,等.擴(kuò)展SQL跟蹤數(shù)據(jù)技術(shù)在數(shù)據(jù)性能診斷上的應(yīng)用[J].計(jì)算機(jī)應(yīng)用與軟件,2006,23(1):128-130.

      [9]盧成均.多層模式下通用數(shù)據(jù)存取層的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2007,28(13):3265-3269.

      [10]Andrews A,Offutt J,Alexander R.Testing Web applications by modeling with FSMS[J].Software Systems and Modeling,2005,4(3):326-345.

      [11]王昌輝,王遠(yuǎn)景.基于URL路徑的Web信息檢索模型的研究[J].貴州教育學(xué)院學(xué)報(bào)(自然科學(xué)),2008,19:36-39.

      [12]尚俊杰,秦衛(wèi)中.ASP.NET程序設(shè)計(jì)案例教程[M].北京:清華大學(xué)出版社,2005.

      猜你喜歡
      優(yōu)化
      超限高層建筑結(jié)構(gòu)設(shè)計(jì)與優(yōu)化思考
      PEMFC流道的多目標(biāo)優(yōu)化
      能源工程(2022年1期)2022-03-29 01:06:28
      民用建筑防煙排煙設(shè)計(jì)優(yōu)化探討
      關(guān)于優(yōu)化消防安全告知承諾的一些思考
      一道優(yōu)化題的幾何解法
      由“形”啟“數(shù)”優(yōu)化運(yùn)算——以2021年解析幾何高考題為例
      圍繞“地、業(yè)、人”優(yōu)化產(chǎn)業(yè)扶貧
      事業(yè)單位中固定資產(chǎn)會(huì)計(jì)處理的優(yōu)化
      4K HDR性能大幅度優(yōu)化 JVC DLA-X8 18 BC
      幾種常見的負(fù)載均衡算法的優(yōu)化
      電子制作(2017年20期)2017-04-26 06:57:45
      苗栗县| 鄂托克前旗| 静海县| 建水县| 岫岩| 泰宁县| 普格县| 清徐县| 桐乡市| 札达县| 绥中县| 宜春市| 博爱县| 苍南县| 綦江县| 昭通市| 新干县| 婺源县| 临湘市| 凌云县| 汉源县| 崇信县| 原平市| 日土县| 安康市| 武胜县| 靖西县| 元氏县| 吐鲁番市| 洛阳市| 双桥区| 南靖县| 金坛市| 黄山市| 方城县| 德惠市| 二连浩特市| 长春市| 磴口县| 黄平县| 合阳县|