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

?

基于Web的企業(yè)網(wǎng)站性能優(yōu)化方案研究與應(yīng)用

2018-03-03 05:30陳洪雁萬俊偉
物聯(lián)網(wǎng)技術(shù) 2018年2期
關(guān)鍵詞:WEB服務(wù)性能優(yōu)化碎片化

陳洪雁+萬俊偉

摘 要:為了解決長期運(yùn)營的企業(yè)網(wǎng)站面臨訪問效率逐漸下降和綜合服務(wù)質(zhì)量差的問題,從用戶角度出發(fā),以提高用戶網(wǎng)站訪問體驗(yàn)值為目的,針對影響網(wǎng)站性能的諸多軟硬件因素如服務(wù)器、應(yīng)用服務(wù)、代碼和數(shù)據(jù)庫等,提出了一套系統(tǒng)的、實(shí)際可操作的基于Web服務(wù)的網(wǎng)站性能優(yōu)化解決方案,并列出了優(yōu)化前后網(wǎng)站訪問性能的對比測試結(jié)果分析。

關(guān)鍵詞:Web服務(wù);性能優(yōu)化;數(shù)據(jù)庫;碎片化

中圖分類號:TP393.027+.3;TP393.18 文獻(xiàn)標(biāo)識碼:A 文章編號:2095-1302(2018)02-00-03

0 引 言

在“互聯(lián)網(wǎng)+”時(shí)代,用戶至上已經(jīng)被多數(shù)企業(yè)接受。網(wǎng)站訪問速度及用戶訪問體驗(yàn)值在企業(yè)網(wǎng)站運(yùn)營的任何時(shí)期都至關(guān)重要,它是網(wǎng)站訪問友好體驗(yàn)最基本的要素,否則后期所做的任何營銷推廣和服務(wù)模式都有可能徒勞無功。由于客戶的耐心不高,加之網(wǎng)絡(luò)中客戶的選擇成本很低,一旦頁面訪問時(shí)間超過6 s客戶就會(huì)離開,因此對于一些流量本就不高的企業(yè)網(wǎng)站來說更是雪上加霜。

網(wǎng)站訪問體驗(yàn)值深受用戶使用產(chǎn)品所有因素的影響,如從用戶發(fā)起對應(yīng)用的訪問,到收到該訪問反饋的內(nèi)容,通常會(huì)經(jīng)過DNS查詢、網(wǎng)絡(luò)傳輸和接入轉(zhuǎn)發(fā)流程,以及Web服務(wù)、應(yīng)用服務(wù)、中間件、數(shù)據(jù)庫等應(yīng)用組件的信息處理,這些組件的性能優(yōu)劣會(huì)直接影響業(yè)務(wù)交互的實(shí)時(shí)性、準(zhǔn)確性和穩(wěn)定性。因此,當(dāng)企業(yè)網(wǎng)站面臨用戶體驗(yàn)值低下的情況時(shí),針對如此多的中間組件環(huán)節(jié),如何提出有效的系統(tǒng)網(wǎng)站性能優(yōu)化方案,成為了一個(gè)重要的研究課題。

本文從實(shí)踐經(jīng)驗(yàn)出發(fā),針對長期運(yùn)營的網(wǎng)站訪問速度逐漸下降的情況,分別從服務(wù)器、應(yīng)用服務(wù)、程序和數(shù)據(jù)庫等對訪問速度影響最大的幾個(gè)方面入手,本著優(yōu)先驗(yàn)證簡單假設(shè)、從簡單到復(fù)雜、從前端到后端、從外到內(nèi)、分步優(yōu)化的原則,提供了一套系統(tǒng)的、實(shí)際可操作、可有效提高用戶體驗(yàn)值的優(yōu)化網(wǎng)站性能方案,以及優(yōu)化后網(wǎng)站訪問效果測試的對比分析。

1 性能優(yōu)化方案設(shè)計(jì)

1.1 服務(wù)器優(yōu)化

通常網(wǎng)站運(yùn)營一段時(shí)間后,隨著業(yè)務(wù)的不斷增加、新系統(tǒng)應(yīng)用的不斷上線,對于網(wǎng)站服務(wù)器性能的要求也逐步提升,久而久之服務(wù)器運(yùn)行遇到性能瓶頸也是意料之中,因此在進(jìn)行網(wǎng)站調(diào)優(yōu)時(shí)首先應(yīng)考慮服務(wù)器調(diào)優(yōu)。

在不更換新服務(wù)器、不提升硬件配置以及不增加網(wǎng)絡(luò)帶寬等相關(guān)配置的情況下解決服務(wù)器性能瓶頸的問題,可從兩方面入手:

(1)定期清除系統(tǒng)日志。垃圾系統(tǒng)日志文件會(huì)占用C盤太多空間,因此要定期刪除??煽紤]制作BAT或者cmd文件自動(dòng)清理,文件腳本如圖1所示。

(2)磁盤碎片整理。磁盤碎片過多會(huì)使系統(tǒng)在讀取文件時(shí)來回尋找,導(dǎo)致系統(tǒng)性能下降,因此需定期清理;

(3)清理備份文件。可將C:\Windows\winsxs\Backup一些備份文件刪除,節(jié)省磁盤空間;

(4)清理數(shù)據(jù)庫錯(cuò)誤日志文件。SQL2005數(shù)據(jù)庫由于對外開放了1433端口,因此時(shí)常會(huì)有黑客嘗試破解SA密碼,導(dǎo)致產(chǎn)生大量錯(cuò)誤日志ERRORLOG文件,錯(cuò)誤日志路徑為C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG。

1.2 應(yīng)用服務(wù)優(yōu)化

實(shí)踐表明,用戶訪問網(wǎng)頁的等待時(shí)間大部分發(fā)生在瀏覽器前端,尤其是加載頁面和加載頁面中的各種元素(圖片、CSS腳本、JavaScript代碼、Flash等)時(shí)。因此,相對于在艱苦而繁雜的程序上花費(fèi)大量時(shí)間和精力做改進(jìn),優(yōu)化Web前端能起到事半功倍的效果。

(1)禁止多余的Web服務(wù)擴(kuò)展。I2S支持多種服務(wù)擴(kuò)展,有些服務(wù)擴(kuò)展不但占用I2S資源影響性能,甚至存在安全漏洞,且對于Web運(yùn)行無意義,選擇禁止其啟動(dòng)。打開I2S管理器,點(diǎn)擊“Web服務(wù)擴(kuò)展”,選中相應(yīng)的擴(kuò)展后點(diǎn)擊“禁用”即可;

(2)刪除無用的I2S擴(kuò)展名映射。I2S默認(rèn)支持.asp等多種擴(kuò)展名的映射,一些無用的擴(kuò)展會(huì)加重服務(wù)器的負(fù)擔(dān)且存在一定的安全隱患。刪除映射辦法:打開I2S管理器中“默認(rèn)Web站點(diǎn)”中“屬性”選項(xiàng)卡,點(diǎn)擊“主目錄”,打開 “配置”窗口,選擇要?jiǎng)h除的擴(kuò)展名映射后點(diǎn)擊“刪除”即可;

(3)取消訪問記錄。I2S默認(rèn)開啟的Web訪問記錄既龐雜又占用大量磁盤空間,嚴(yán)重影響了Web服務(wù)器性能。取消訪問記錄的操作:打開I2S管理器,找到具體的Web站點(diǎn),點(diǎn)開“屬性”選項(xiàng)卡,在“主目錄”下取消對“記錄訪問”的勾選即可;

(4)限制訪問流量。打開I2S管理器,定位到具體的Web站點(diǎn),打開“屬性”窗口,選中“性能”標(biāo)簽與“啟用帶寬限制”,在 “最大網(wǎng)絡(luò)使用”設(shè)置中,設(shè)置帶寬的具體數(shù)值;

(5)讓W(xué)eb負(fù)載自由伸縮。操作步驟:在“Internet信息服務(wù)”管理器中應(yīng)用程序池的“屬性”對話框中打開“性能”選項(xiàng)卡,在 “最大工作進(jìn)程數(shù)”輸入框中輸入進(jìn)程數(shù);

(6)清理緩存文件。手動(dòng)清理緩存文件C:\Winnt\I2S Temporary Compressed Files,當(dāng)I2S網(wǎng)站啟動(dòng)gzip功能時(shí),被訪問的頁面會(huì)產(chǎn)生大量文件在C盤,導(dǎo)致C盤被占滿;

(7)建設(shè)獨(dú)立應(yīng)用程序池并設(shè)置為獨(dú)占方式訪問。

1.3 程序優(yōu)化

通過優(yōu)化程序代碼和在數(shù)據(jù)庫的連接上加入一些技巧,就能讓程序更快地執(zhí)行,使應(yīng)用性能達(dá)到最佳。

1.3.1 網(wǎng)站腳本優(yōu)化

(1)將經(jīng)常使用的數(shù)據(jù)緩存在Web服務(wù)器上。如引用表、菜單項(xiàng)、擴(kuò)展標(biāo)記語言 (XML) 字符串、組合框列表、DHTML 碎片和站點(diǎn)配置變量(Internet 協(xié)議 (IP) 地址、包括數(shù)據(jù)源名稱DSN和Web路徑)等;

(2)將經(jīng)常使用的數(shù)據(jù)緩存在Session 對象或Application中。Session 對象和ASP Application為在 HTTP 調(diào)用常用數(shù)據(jù)提供了方便的緩存容器;endprint

(3)定義私有變量。私有變量在運(yùn)行速度以及空間占用方面比全局變量速度更快。使用函數(shù)返回字符,同時(shí)避免使用變量,如果必須使用變量,那么盡量使用私有變量;

(4)在ASP程序行首放置<% option explicit%>,聲明VBScript變量,避免因服務(wù)器解析而影響服務(wù)器的響應(yīng)請求速度;

(5)使用case進(jìn)行條件選擇,避免使用if語句;

(6)避免在使用的global.asa文件中進(jìn)行對象定義;

(7)使用Response.Write生成HTML代碼,保持連貫的ASP代碼來提高性能,避免分散ASP代碼和HTML語言命令;

(8)使用< OBJECT >標(biāo)記代替Server.CreateObject。當(dāng)對象被首次引用時(shí)才創(chuàng)建< OBJECT >,而后者將立即創(chuàng)建對象,提高效率;

(9)打開“Option Explicit”,明確定義變量選項(xiàng);

(10)慎用 Server.MapPath,明確的文字路徑建議使用MapPath;

(11)頁面執(zhí)行前使用Response.IsClientConnected以避免使用較長時(shí)間加載頁面;

(12)在目錄 URL 中使用后斜杠“/”;

(13)盡量使用Server.Transfer而非Response.Redirect進(jìn)行優(yōu)化轉(zhuǎn)向鏈接。

1.3.2 數(shù)據(jù)庫訪問優(yōu)化

(1)當(dāng)對象使用完畢后,首先使用Close方法釋放對象所占用的系統(tǒng)資源,然后設(shè)置對象值為“nothing”釋放對象占用的內(nèi)存;

(2)使用存儲(chǔ)過程訪問數(shù)據(jù)庫,配合ActiveX Data Objects(ADO)將會(huì)贏得很大的程序性能;

(3)當(dāng)只限取前面N條記錄時(shí),切勿使用 select *后再用ADO分頁,若改為 select top N字段列表將會(huì)大大提高效率;

(4)統(tǒng)計(jì)記錄數(shù)時(shí)切勿用 select * from…,改用 select count(1) from…;

(5)盡量避免使用select * from table等SQL語句,避免程序從數(shù)據(jù)庫里讀取無用數(shù)據(jù),建議使用select 字段1,字段2 from table等形式,只從數(shù)據(jù)庫里讀取必要的數(shù)據(jù);

(6)勿用嵌套查詢,使用sql = select a.id ,b.name from a left join b on b.id=a.id連表操作,并用具體的字段名代替 *;

(7)數(shù)據(jù)查詢時(shí)避免使用NOT IN(…)語句,可提高效率;

(8)去掉不必要的查詢使用語句如select *、Order by、group by等;

(9)刪除無意義的程序鎖;

(10)修改不合理擴(kuò)大查詢范圍語句,<>用<、>代替,not exists替代not in等;

(11)不用子查詢;

(12)執(zhí)行語句避免對列的四則運(yùn)算;

(13)insert,update,delete等更改語句放在程序結(jié)束前執(zhí)行,以降低死鎖的可能性。

1.4 數(shù)據(jù)庫優(yōu)化

運(yùn)行中的站點(diǎn)隨著時(shí)間推移及應(yīng)用系統(tǒng)的頻繁使用,數(shù)據(jù)庫在日常使用過程中將不斷進(jìn)行insert,delete,update操作,導(dǎo)致表和索引出現(xiàn)碎片,從而成為影響網(wǎng)站反應(yīng)速度和性能的最主要因素。數(shù)據(jù)庫的碎片會(huì)導(dǎo)致系統(tǒng)性能減弱并浪費(fèi)大量表空間,因此優(yōu)化數(shù)據(jù)庫是提升用戶體驗(yàn)值的有效手段。

由于高水位線(HWL)下的許多數(shù)據(jù)塊都無數(shù)據(jù),但全表掃描時(shí)還需要掃描高水位線的數(shù)據(jù)塊,意味著Oracle要做許多無用功。因此Oracle提供了shrink space碎片整理功能。

(1)備份是整理碎片的前提,因此備份表A到備份表B。Oracle數(shù)據(jù)庫表備份命令操作截圖如圖2所示。

(2)分析待整理的表A,Oracle數(shù)據(jù)庫表分析結(jié)果如圖3所示。估算表在高水位線下還有多少空間可用,表使用率越接近高水位線,全表掃描所做的無用功也就越少。

(3)Oracle數(shù)據(jù)庫表碎片整理操作過程如圖4所示。

(4)如果該表之前建立過視圖,那么相關(guān)視圖需要重新編譯,然后重啟數(shù)據(jù)庫。至此碎片整理過程全部結(jié)束。

作為影響數(shù)據(jù)庫性能的一大因素,數(shù)據(jù)庫碎片應(yīng)當(dāng)引起網(wǎng)絡(luò)管理員的足夠重視,及時(shí)發(fā)現(xiàn)并清理碎片是網(wǎng)絡(luò)管理員維護(hù)工作的一項(xiàng)基本內(nèi)容。

1.5 其他優(yōu)化

(1)移動(dòng)設(shè)備優(yōu)先,單個(gè)數(shù)據(jù)對象小于 25 k。當(dāng)前階段,移動(dòng)互聯(lián)已成為主流,網(wǎng)站鏈接對象越小,加載速度就越快,移動(dòng)用戶的體驗(yàn)就越卓越;

(2)勿使用縮放圖片。制作合適的圖片,避免使用 ImageMagic 命令convert來拉伸或壓縮圖片;

(3)優(yōu)化圖片。相比GIF 、JPG及PNG格式圖片,應(yīng)盡可能使用擁有更多功能和更小尺寸的PNG格式圖片;

(4)控制第三方腳本。在關(guān)鍵頁面內(nèi)容之后加載第三方腳本,或放在頁面onLoad之后加載。

2 性能對比與分析

完成網(wǎng)站優(yōu)化后,重啟網(wǎng)站服務(wù)器即可看到明顯的優(yōu)化效果。通過Web性能測試工具進(jìn)行測試,測試結(jié)果如圖5、圖6所示。在獲取HTML文檔時(shí),優(yōu)化后花費(fèi)的時(shí)間不到優(yōu)化前總響應(yīng)時(shí)間的20%,首頁加載時(shí)間為365 ms,HTML頁生成的時(shí)間大大縮短,后臺(tái)運(yùn)行時(shí)間減少了50% (測試使用的是第三方Web測速工具,所有測試結(jié)果均在第三方瀏覽器本地0緩存的條件下進(jìn)行)。

對網(wǎng)站的首頁進(jìn)行一段時(shí)間的監(jiān)控后,其加載速度的測試結(jié)果如圖7所示。由圖可知,加載時(shí)間明顯縮短,網(wǎng)站整體實(shí)現(xiàn)了較大的性能提升。endprint

3 結(jié) 語

性能優(yōu)化是一個(gè)復(fù)雜的話題,牽涉廣泛,優(yōu)化過程中需考慮眾多因素。本文歸納總結(jié)的這些優(yōu)化方法對于一個(gè)中大型網(wǎng)站而言,可認(rèn)為是一個(gè)普遍高效的解決方案,但是落實(shí)到不同的業(yè)務(wù)時(shí),又會(huì)有自己的實(shí)現(xiàn)方式(實(shí)現(xiàn)方式指不同的方案組合和對應(yīng)的技術(shù)實(shí)現(xiàn)方式)。

性能因素是一個(gè)網(wǎng)站系統(tǒng)發(fā)展的重要推動(dòng)力,再細(xì)致的思考也難以兼容太多未知場景,因此不妨將目光投放在擴(kuò)展性和兼容性上,避免網(wǎng)站冷清的痛苦,更避免網(wǎng)站大熱的痛苦。

此外,在做任何優(yōu)化和操作前,需要做好網(wǎng)站和數(shù)據(jù)庫的備份工作。

參考文獻(xiàn)

[1]康長安,陳玉紅.基于前端的Web性能優(yōu)化[J].電腦知識與技術(shù),2011,7(6):3811-3813.

[2]張正風(fēng),強(qiáng)承魁,袁劍鋒.Web性能優(yōu)化前端方案研究[J].軟件導(dǎo)刊,2013, 12(5):116-118.

[3]余以勝.移動(dòng)終端Web頁面的優(yōu)化處理研究[J].電子技術(shù)應(yīng)用,2014,40(7):126-129.

[4]陳宏君.基于Web標(biāo)準(zhǔn)的CSS樣式優(yōu)化分析[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2013(9):126-127.

[5]王政.Web前端開發(fā)技術(shù)以及優(yōu)化研究[J].電腦知識與技術(shù),2013(8):5037-5038.

[6]李雨晨.Web系統(tǒng)前端性能優(yōu)化方法研究[D].長沙:湖南大學(xué),2013.

[7]張開敏.基于網(wǎng)頁結(jié)構(gòu)的自適應(yīng)Web緩存[J].中國科學(xué)技術(shù)大學(xué)學(xué)報(bào),2013,43(10):799-810.

[8]何中林.Web應(yīng)用系統(tǒng)的優(yōu)化與實(shí)踐[J].數(shù)字技術(shù)與應(yīng)用,2012(5):67-68.

[9]于海鵬,張旭陽.基于Web的應(yīng)用系統(tǒng)前端頁面性能優(yōu)化[J].福建電腦,2012,28(5):11-12.

[10]李鐵彬.網(wǎng)頁界面體驗(yàn)設(shè)計(jì)研究[D].哈爾濱:哈爾濱工程大學(xué),2011.

[11]張艷,石磊,衛(wèi)琳.Web緩存優(yōu)化模型研究[J].計(jì)算機(jī)工程,2009,35(8):85-87.

[12]劉柳.基于Web前端的性能優(yōu)化方案研究[D].武漢:華中科技大學(xué),2015.

[13]李蓉蓉,邱林潤.前端開發(fā)技術(shù)與Web性能優(yōu)化探討[J].數(shù)字通信世界,2015(6):63-65.

[14]尹今朝.高并發(fā)訪問下的Web性能優(yōu)化研究[J].城市建設(shè)理論研究(電子版),2013(16):48-49.endprint

猜你喜歡
WEB服務(wù)性能優(yōu)化碎片化
SQL Server數(shù)據(jù)庫性能優(yōu)化的幾點(diǎn)分析
想象力都去哪了