• 
    

    
    

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

      ?

      WEB系統(tǒng)性能優(yōu)化的研究與實(shí)踐

      2013-12-29 00:00:00周倩羅揚(yáng)
      電腦知識與技術(shù) 2013年10期

      摘要:該文結(jié)合社區(qū)警務(wù)管理系統(tǒng)的研發(fā)及實(shí)踐,論述了針對WEB系統(tǒng)中普遍存在的性能問題及具體系統(tǒng)的特點(diǎn),對影響系統(tǒng)性能的因素進(jìn)行分析,找出系統(tǒng)性能的瓶頸,并給出具體適用于WEB應(yīng)用系統(tǒng)的性能優(yōu)化方案和技術(shù),如:索引應(yīng)用、前端優(yōu)化、緩存技術(shù)及負(fù)載均衡技術(shù)等,并將它們應(yīng)用于社區(qū)警務(wù)管理系統(tǒng)中,使該系統(tǒng)性能得到了最大化的提升。

      關(guān)鍵詞:WEB系統(tǒng);警務(wù)管理系統(tǒng);性能優(yōu)化

      中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2013)10-2324-04

      1 概述

      近幾年,隨著互聯(lián)網(wǎng)快速的發(fā)展及廣泛的應(yīng)用,商業(yè)應(yīng)用層出不窮,業(yè)務(wù)邏輯不斷變復(fù)雜,以互聯(lián)網(wǎng)和數(shù)據(jù)庫技術(shù)為基礎(chǔ)的各種信息管理系統(tǒng)已滲透到當(dāng)今社會(huì)工作生活中的各個(gè)角落。隨之而來的是應(yīng)用技術(shù)和開發(fā)語言的日新月異,開發(fā)者需要永遠(yuǎn)不停的學(xué)習(xí),對用戶體驗(yàn)的要求也不斷提升,同樣,在Web站點(diǎn)性能方面,開發(fā)者也一直在跟時(shí)間賽跑,因?yàn)檐浖阅茉缫殉蔀樵u價(jià)軟件質(zhì)量的一個(gè)重要因素,對于站點(diǎn)經(jīng)營者來說,讓用戶等待的時(shí)間過長,即系統(tǒng)性能差,也許會(huì)造成毀滅性的后果,因此對系統(tǒng)性能進(jìn)行合理的優(yōu)化已成為當(dāng)今系統(tǒng)技術(shù)負(fù)責(zé)人及程序員必備的專業(yè)技能和工作要求。該文通過研究具體適用于WEB應(yīng)用系統(tǒng)的優(yōu)化方案和技術(shù),如:索引應(yīng)用、動(dòng)態(tài)網(wǎng)頁靜態(tài)化、緩存技術(shù)及負(fù)載均衡技術(shù)等,并將它們應(yīng)用于筆者參與開發(fā)的衡陽市社區(qū)警務(wù)信息管理系統(tǒng)中,通過對比該系統(tǒng)應(yīng)用優(yōu)化技術(shù)前后性能的變化來驗(yàn)證該系列技術(shù)方案的可行性及適用性。

      2 WEB系統(tǒng)性能優(yōu)化策略

      目前的Web應(yīng)用系統(tǒng),不管是何種語言開發(fā),粗略的結(jié)構(gòu)一般均由三層構(gòu)成:前臺頁面、業(yè)務(wù)邏輯、數(shù)據(jù)庫。目前一般的頁面技術(shù),根據(jù)數(shù)據(jù)生成最終的HTML頁面,性能關(guān)鍵指標(biāo)可概括為頁面的渲染速度。綜合各種頁面技術(shù)而言,渲染速度相差不會(huì)太大,10倍以內(nèi);業(yè)務(wù)邏輯,根據(jù)業(yè)務(wù)需要將數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行邏輯處理讀取到內(nèi)存中,以便通過頁面模板渲染成HTML頁面;數(shù)據(jù)庫負(fù)責(zé)執(zhí)行SQL查詢完成數(shù)據(jù)的交互。

      所以多數(shù)Web系統(tǒng)優(yōu)化方案均可根據(jù)這三個(gè)部分進(jìn)行設(shè)計(jì)。目前普遍的優(yōu)化技術(shù)概括起來有:數(shù)據(jù)的網(wǎng)絡(luò)傳輸、服務(wù)器并發(fā)處理能力、緩存技術(shù)(動(dòng)態(tài)網(wǎng)頁緩存、數(shù)據(jù)緩存、頁面緩存、分布式緩存)、數(shù)據(jù)庫分布式、負(fù)載均衡技術(shù)、性能監(jiān)控方案等。

      然而如何選擇適合有效的優(yōu)化方案,則必須根據(jù)系統(tǒng)實(shí)際情況對系統(tǒng)各方面進(jìn)行性能監(jiān)控和分析,找出系統(tǒng)的性能瓶頸,從瓶頸問題出發(fā),便會(huì)在系統(tǒng)性能優(yōu)化工作中起到事半功倍的效果。

      按照筆者目前積累的經(jīng)驗(yàn),對于一般WEB應(yīng)用系統(tǒng)的優(yōu)化方案可注意一下幾個(gè)準(zhǔn)則:

      1)沒必要去優(yōu)化頁面模板,這都是一些很成熟的技術(shù),就算你好不容易提升了10%的性能,這10%在整個(gè)頁面的執(zhí)行過程中只占了0.5%的比例,微乎其微。

      2)合理應(yīng)用索引,優(yōu)化查詢。

      3)緩存技術(shù),簡單而高效。

      4)服務(wù)器壓力相對較大的需求,分布式處理。

      下面將以筆者參與開發(fā)的衡陽市社區(qū)警務(wù)管理信息系統(tǒng)為例,對優(yōu)化該系統(tǒng)所采用的方案做介紹。

      3 索引技術(shù)的應(yīng)用

      在關(guān)系數(shù)據(jù)庫中,索引是一種與表有關(guān)的數(shù)據(jù)庫結(jié)構(gòu),它可以使對應(yīng)于表的SQL?語句執(zhí)行得更快。沒有索引,條件查詢時(shí)會(huì)搜索整個(gè)表,這樣會(huì)消耗大量數(shù)據(jù)庫系統(tǒng)時(shí)間,并造成大量磁盤I/O操作;如果在表中合理建立索引,則可以在索引中找到符合查詢條件的索引值,最后通過保存在索引中的ROWID快速找到表中對應(yīng)的記錄,而無需對整個(gè)表數(shù)據(jù)進(jìn)行掃描。

      而優(yōu)化SQL語句的關(guān)鍵是盡可能減少語句的logical reads(語句執(zhí)行時(shí)需要訪問的單位為8K的數(shù)據(jù)頁總數(shù))。logical reads 越少,其需要的內(nèi)存和CPU時(shí)間也就越少,語句執(zhí)行速度就越快。而索引的最大好處就是它可以極大減少SQL語句的logical reads數(shù)目,從而極大減少語句的執(zhí)行時(shí)間,提高系統(tǒng)的執(zhí)行效率。創(chuàng)建索引的關(guān)鍵是索引要能夠大大減少語句的logical reads。一個(gè)索引好不好,主要看它減少的logical reads多不多,因此要根據(jù)數(shù)據(jù)表實(shí)際的使用情況合理應(yīng)用索引技術(shù),下面將以社區(qū)警務(wù)管理信息系統(tǒng)為例,介紹筆者在該系統(tǒng)中合理應(yīng)用索引優(yōu)化系統(tǒng)的過程。

      在衡陽社區(qū)警務(wù)管理系統(tǒng)人口管理模塊中,涉及到衡陽市人口數(shù)據(jù)已達(dá)800多萬,這給數(shù)據(jù)的查詢性能提出了更高的要求。系統(tǒng)通過建立索引有效提升了查詢性能。(筆者采用PowerDesigner工具生成了800萬條人口測試數(shù)據(jù))

      4 動(dòng)態(tài)內(nèi)容緩存技術(shù)

      簡單的說,緩存的目的就是把需要花費(fèi)昂貴開銷的計(jì)算結(jié)果保存起來,在以后需要的時(shí)候直接取出,而避免重復(fù)計(jì)算。在這里筆者所指的是由動(dòng)態(tài)內(nèi)容自行實(shí)現(xiàn)的緩存機(jī)制,包括整頁緩存、局部緩存、數(shù)據(jù)緩存等。

      4.1 頁面緩存

      對于動(dòng)態(tài)網(wǎng)頁來說,緩存的內(nèi)容實(shí)際上就是動(dòng)態(tài)網(wǎng)頁輸出的HTML,即頁面緩存,而對于其他動(dòng)態(tài)內(nèi)容,比如圖片或動(dòng)態(tài)XML數(shù)據(jù),也可以將它們的輸出結(jié)果整體進(jìn)行緩存,其實(shí)現(xiàn)機(jī)制和動(dòng)態(tài)網(wǎng)頁是一樣的。

      衡陽市社區(qū)警務(wù)信息管理系統(tǒng)采用ASP.NET平臺開發(fā),并且地圖模塊、治安模塊頁面信息量極大,因此使用@ OutputCache指令實(shí)現(xiàn)頁面輸出緩存的一般性需求。@ OutputCache指令在ASP.NET頁或者頁中包含的用戶控件的頭部聲明。該指令中包括必需的 Duration 和 VaryByParam 或 VaryByControl 屬,Duration用于設(shè)置頁面或者用戶控件緩存的時(shí)間。單位是秒。通過設(shè)置該屬性,能夠?yàn)閬碜詫ο蟮腍TTP響應(yīng)建立了一個(gè)過期策略,并將自動(dòng)緩存頁或用戶控件輸出。Duration必須為大于零的整數(shù)。VaryByControl屬性使用一個(gè)分號分隔的字符串列表來更改用戶控件的輸出緩存。這些字符串代表在用戶控件中聲明的ASP.NET服務(wù)器控件的ID屬性值。除非已經(jīng)包含了VaryByParam屬性,否則在@ OutputCache指令中,該屬性是必需的。

      其指示頁面輸出緩存的有效期是100秒,并且頁面不隨任何GET或POST參數(shù)改變。在該頁仍被緩存時(shí)接收到的請求由緩存數(shù)據(jù)提供服務(wù)。經(jīng)過100秒后,將從緩存中移除該頁數(shù)據(jù),并隨后顯式處理下一個(gè)請求并再次緩存頁。

      這種方式非常方便,只需幾個(gè)簡單的屬性設(shè)置,就能夠?qū)崿F(xiàn)頁面的輸出緩存策略。

      4.2 數(shù)據(jù)緩存

      對于社區(qū)警務(wù)信息管理系統(tǒng),大量數(shù)據(jù)是保存在數(shù)據(jù)庫中的,本系統(tǒng)所管理信息多為人口、地理、企業(yè)等法律意義上的固定信息,信息變動(dòng)幾率比較小,信息多用于輔助辦公時(shí)查詢使用。如果系統(tǒng)每次需要讀取的警務(wù)信息,都要訪問數(shù)據(jù)庫,那會(huì)是一項(xiàng)很費(fèi)時(shí)的操作。針對本系統(tǒng)該特點(diǎn),筆者通過采用數(shù)據(jù)緩存優(yōu)化策略,有效提高了系統(tǒng)性能。即:先將數(shù)據(jù)庫中的數(shù)據(jù)緩存到緩存區(qū)中,當(dāng)應(yīng)用程序需要這些數(shù)據(jù)時(shí),直接從緩存區(qū)中提取,就可以減少系統(tǒng)開銷。

      如果需要某個(gè)數(shù)據(jù)訪問層接口使用數(shù)據(jù)緩存,只需調(diào)用DataAcces提供給該數(shù)據(jù)層的“CreateObject”方法,返回該數(shù)據(jù)類利用緩存的對象,而業(yè)務(wù)邏輯層在調(diào)用數(shù)據(jù)層時(shí)要根據(jù)是否需要?jiǎng)?chuàng)建數(shù)據(jù)緩存來選擇調(diào)用DataAccess類中創(chuàng)建數(shù)據(jù)類的方法。

      5 負(fù)載均衡技術(shù)

      當(dāng)已經(jīng)最大程度的發(fā)揮了單臺Web服務(wù)器的處理能力后,服務(wù)器所承受的壓力仍會(huì)達(dá)到極限時(shí),就應(yīng)想辦法將壓力合理轉(zhuǎn)移到多臺服務(wù)器上,即當(dāng)前流行的負(fù)載均衡技術(shù),對于當(dāng)今硬件價(jià)格低廉,購置方便的前提下,這是一個(gè)不錯(cuò)的性能優(yōu)化方案。

      負(fù)載均衡是由多臺服務(wù)器以對稱的方式組成一個(gè)服務(wù)器集合,每臺服務(wù)器都具有等價(jià)的地位,都可以單獨(dú)對外提供服務(wù)而無須其他服務(wù)器的輔助。通過某種負(fù)載分擔(dān)技術(shù),將外部發(fā)送來的請求均勻分配到對稱結(jié)構(gòu)中的某一臺服務(wù)器上,而接收到請求的服務(wù)器獨(dú)立地回應(yīng)客戶的請求。負(fù)載均衡能夠平均分配客戶請求到服務(wù)器列陣,以此提供快速獲取重要數(shù)據(jù),解決大量并發(fā)訪問服務(wù)問題。

      實(shí)現(xiàn)Web負(fù)載均衡的方法有:HTTP重定向;基于DNS的輪詢解析;通過反向代理服務(wù)器來實(shí)現(xiàn)負(fù)載均衡調(diào)度;通過LVS來組件服務(wù)器集群。通過這些具體的實(shí)現(xiàn)方法,我們更加關(guān)心的是能否真正地均衡調(diào)度請求,以及是否具備高可用性和影響規(guī)模擴(kuò)展的制約因素。

      目前衡陽市社區(qū)警務(wù)管理信息系統(tǒng)還未應(yīng)用此優(yōu)化方案,考慮到日后系統(tǒng)可能會(huì)升級到省級使用,將導(dǎo)致系統(tǒng)的并發(fā)訪問量越來越大,單臺服務(wù)器也許不能正常高效的滿足需求,因此在后期工作中,筆者將會(huì)以實(shí)現(xiàn)負(fù)載均衡技術(shù)中相對簡單的方案:HTTP重定向?yàn)榍腥朦c(diǎn),深入研究該方案,以爭取最大化降低服務(wù)器端壓力,使系統(tǒng)更健壯、穩(wěn)定、長久。

      6 前臺優(yōu)化方案

      6.1 動(dòng)態(tài)頁面靜態(tài)化

      將頁面生成HTML靜態(tài)網(wǎng)頁有如下好處:加快頁面打開瀏覽速度,靜態(tài)頁面無需連接數(shù)據(jù)庫打開速度較動(dòng)態(tài)頁面有明顯提高;減輕服務(wù)器負(fù)擔(dān),使頁面緩存發(fā)揮意義;網(wǎng)站更安全,HTML頁面不會(huì)受Asp相關(guān)漏洞的影響。因此將動(dòng)態(tài)頁面盡可能靜態(tài)化也是優(yōu)化WEB應(yīng)用系統(tǒng)普遍采用的方案。

      6.2 AJAX應(yīng)用

      7 結(jié)束語

      性能優(yōu)化是一個(gè)復(fù)雜的過程,它需要多種理論和技術(shù)的支持,沒有適用于所有應(yīng)用系統(tǒng)的優(yōu)化方案,我們所能夠做到的,應(yīng)該是在選擇優(yōu)化措施時(shí),根據(jù)具體環(huán)境和應(yīng)用的不同,從多角度多方面來衡量優(yōu)化措施的利與弊,以便于找到最適合目標(biāo)系統(tǒng)的優(yōu)化方案。

      參考文獻(xiàn):

      [1] 郭欣.構(gòu)建高性能Web站點(diǎn)[M].北京:電子工業(yè)出版社,2012.

      [2] Chris Knowles.ASP. NET XML 高級編程[M].北京:清華大學(xué)出版社,2002.

      [3] 馬曉軒.Web服務(wù)性能優(yōu)化的研究[J].計(jì)算機(jī)工程與應(yīng)用,2005(8):21-23.

      [4] 維恩霍爾特..NET性能優(yōu)化[M].北京:清華大學(xué)出版社,2005.

      [5] 布拉德福.Effective SQL之SQL語句最優(yōu)化[M].北京:清華大學(xué)出版社,2013.

      延边| 邻水| 红桥区| 朔州市| 宜宾县| 军事| 启东市| 潞西市| 阳原县| 汝州市| 湟中县| 元氏县| 怀化市| 水富县| 辽中县| 厦门市| 泰和县| 连平县| 思茅市| 大理市| 琼海市| 彭山县| 当涂县| 北海市| 东兰县| 富宁县| 那坡县| 新野县| 佳木斯市| 鸡东县| 牙克石市| 科技| 佛坪县| 衡南县| 白城市| 千阳县| 贵港市| 谢通门县| 长岛县| 景宁| 鄂伦春自治旗|