王偉 譚松榮
摘 要:Web應(yīng)用系統(tǒng)在大量用戶進(jìn)行訪問的情況下容易出現(xiàn)網(wǎng)站響應(yīng)的時(shí)間過長、系統(tǒng)崩潰和癱瘓等現(xiàn)象,并且隨著社會(huì)不斷地發(fā)展,使用互聯(lián)網(wǎng)的用戶變得越來越多,所以開發(fā)人員要對(duì)Web應(yīng)用系統(tǒng)進(jìn)行最大限度的優(yōu)化,以保證Web應(yīng)用系統(tǒng)的使用質(zhì)量。所以改變Web正面臨的問題是刻不容緩的,因此本文主要分析和研究了高并發(fā)Web系統(tǒng)性能的優(yōu)化方法。
關(guān)鍵詞:高并發(fā);Web應(yīng)用系統(tǒng);性能優(yōu)化
中圖分類號(hào):TP311.52 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2096-4706(2019)03-0022-02
Analysis and Research on Performance Optimization of
High Concurrent Web Application System
WANG Wei,TAN Songrong
(Tianyi iMusic Culture Technology Co.,Ltd.,Guangzhou 510180,China)
Abstract:Web application system is prone to some phenomena such as too long response time,system crash and paralysis when a large number of users visit it. With the continuous development of society,more and more users will use the internet. Therefore,developers should optimize the Web application system to the maximum extent to ensure the quality of the use of the Web application system. Therefore,it is urgent to change the problems that the Web is facing. Therefore,this paper mainly analyses and studies the performance optimization methods of high concurrent Web systems.
Keywords:high concurrency;Web application system;performance optimization
0 引 言
解決Web應(yīng)用系統(tǒng)目前正面臨的問題,開發(fā)人員就要對(duì)系統(tǒng)中的前端、后臺(tái)程序、數(shù)據(jù)庫等進(jìn)行優(yōu)化,讓服務(wù)器的配置、數(shù)據(jù)庫的性能和Web容器的性能等都得到提高,保證Web應(yīng)用系統(tǒng)在面對(duì)高并發(fā)的情況下不出現(xiàn)崩潰、響應(yīng)時(shí)間長等問題,提高用戶在使用時(shí)的體驗(yàn)感,使Web應(yīng)用系統(tǒng)的發(fā)展更加良好。
1 Web應(yīng)用系統(tǒng)性能優(yōu)化的必要性
決定Web應(yīng)用系統(tǒng)性能好壞的因素主要有四個(gè),其中包括頁面的響應(yīng)時(shí)間、并發(fā)連接的最大化、單位時(shí)間內(nèi)需要處理的HTTP的錯(cuò)誤數(shù)量、服務(wù)器HTTP的帶寬,面對(duì)目前市場(chǎng)上Web應(yīng)用系統(tǒng)存在的問題,盡管通過擴(kuò)大服務(wù)器的內(nèi)存以及增加網(wǎng)絡(luò)出口的帶寬等方法使系統(tǒng)的性能得到了一定的提高,但是這些方法還不能有效解決問題的根本所在,并且隨著社會(huì)的不斷發(fā)展,使用Web應(yīng)用系統(tǒng)的人數(shù)越來越多,沒有一個(gè)精簡(jiǎn)、性能優(yōu)良的Web系統(tǒng)根本無法支撐日益增長的人數(shù)需求。
2 Web應(yīng)用系統(tǒng)的優(yōu)化方案
2.1 Web應(yīng)用系統(tǒng)中前端的優(yōu)化方案
要充分對(duì)頁面的加載過程進(jìn)行了解才能對(duì)Web應(yīng)用系統(tǒng)中的前端進(jìn)行優(yōu)化。通過了解知道,在整個(gè)頁面進(jìn)行加載的過程中,其下載到瀏覽器中的是一個(gè)不包括圖片格式的HTML文檔,這一下載過程只有整個(gè)頁面加載的十分之一,當(dāng)文檔加載完成之后,就會(huì)進(jìn)入到一個(gè)對(duì)頁面進(jìn)行解析的步驟,首先會(huì)解析head的標(biāo)簽,在解析的過程中可能會(huì)遇到一些引用的JS文件等,這種情況下瀏覽器就不會(huì)再繼續(xù)對(duì)頁面進(jìn)行加載,而是會(huì)先對(duì)標(biāo)簽進(jìn)行請(qǐng)求工作,待請(qǐng)求通過之后才會(huì)繼續(xù)進(jìn)行解析,當(dāng)該標(biāo)簽被解析完成之后,就會(huì)對(duì)body的標(biāo)簽繼續(xù)進(jìn)行解析,與解析head標(biāo)簽不同的是,它是會(huì)將一個(gè)標(biāo)簽所對(duì)應(yīng)的SRC的內(nèi)容進(jìn)行請(qǐng)求,其中如果有很多個(gè)標(biāo)簽,瀏覽器就會(huì)對(duì)對(duì)應(yīng)的SRC內(nèi)容進(jìn)行并發(fā)的請(qǐng)求。其主要的解析過程如圖1所示。
通過描述相關(guān)的頁面加載過程,可以清楚的知道頁面的質(zhì)量在一定程度上影響了高并發(fā)網(wǎng)站運(yùn)行的速度,如果頁面的內(nèi)存太大,那么在頁面進(jìn)行加載的時(shí)候就會(huì)耗費(fèi)比較大的網(wǎng)絡(luò)帶寬,所以,要想在一定程度上提升網(wǎng)站運(yùn)行的速度,就要設(shè)計(jì)比較簡(jiǎn)潔的網(wǎng)頁,減少一些沒有用的網(wǎng)絡(luò)流量,使帶寬的壓力得到一定的緩解,因此對(duì)Web應(yīng)用系統(tǒng)的前端進(jìn)行優(yōu)化,可以做到以下五個(gè)步驟:第一,在一定程度上減少引用過多的外部文件,通過將多個(gè)外部文件進(jìn)行合并,有效減少網(wǎng)站中HTTP的請(qǐng)求;第二,在頁面進(jìn)行加載的過程當(dāng)中,可以將一些暫時(shí)還未用到的外部文件在頁面的底部進(jìn)行加載,有效減少等待的時(shí)間;第三,在瀏覽器中緩存一些網(wǎng)站經(jīng)常會(huì)用到的重復(fù)文件,減少在進(jìn)行HTTP請(qǐng)求時(shí)對(duì)服務(wù)器的壓力,在一定程度上會(huì)縮短頁面加載的時(shí)間;第四,通過對(duì)頁面中的圖片進(jìn)行像素、格式等的有效處理,將圖片的大小進(jìn)行裁剪,減少加載圖片的時(shí)間;第五,可以使用Ajah的異步加載,使網(wǎng)站能夠在不刷新頁面的情況下對(duì)頁面上的內(nèi)容進(jìn)行更新,在一定程度上減少用戶等待頁面加載的時(shí)間。
2.2 Web應(yīng)用系統(tǒng)中后臺(tái)程序的優(yōu)化方案
2.2.1 對(duì)Session進(jìn)行設(shè)置
在網(wǎng)站的運(yùn)行過程中,由于Web應(yīng)用系統(tǒng)中無狀態(tài)記憶的特征,因此在網(wǎng)站的請(qǐng)求與服務(wù)器建立起Web應(yīng)用系統(tǒng)的連接時(shí),其狀態(tài)不能進(jìn)行共享,比如說如果一個(gè)用戶在登錄時(shí)的用戶標(biāo)識(shí)是1,在進(jìn)行密碼修改時(shí),系統(tǒng)就不會(huì)對(duì)用戶進(jìn)行定位以獲取其信息,這是因?yàn)橄到y(tǒng)中的一個(gè)Session在定義變量的時(shí)候,在其生命周期內(nèi)可以使用戶訪問所有的鏈接,并且在全局變量的傳遞工作中起著重要的作用,由于Session擁有比較好的便捷性,因此許多的技術(shù)開發(fā)人員經(jīng)常會(huì)使用Session,所以在進(jìn)行高并發(fā)的訪問時(shí),就會(huì)產(chǎn)生大量的內(nèi)存,使服務(wù)器的壓力極大地增加。要想有效解決這個(gè)問題,就需要在適當(dāng)?shù)某潭壬辖鉀Q好Session的問題,比如盡全力將Session中的信息進(jìn)行精簡(jiǎn),選擇將一些用戶經(jīng)常會(huì)使用到的信息儲(chǔ)存到該系統(tǒng)中,并且當(dāng)用戶使用后,可以有效地將一些無用信息清除,在一定程度上降低服務(wù)器內(nèi)Session所占的內(nèi)存。
2.2.2 優(yōu)化數(shù)據(jù)庫中的操作語言
在目前的關(guān)系型的數(shù)據(jù)庫當(dāng)中,要訪問數(shù)據(jù)就必須通過編寫相應(yīng)的數(shù)據(jù)庫操作語言,所以優(yōu)化數(shù)據(jù)庫中的操作語言是必然的,目前在編寫操作語言的過程中,由于每個(gè)項(xiàng)目的規(guī)模、數(shù)據(jù)關(guān)系等因素都不相同,所以要對(duì)這些因素進(jìn)行仔細(xì)和反復(fù)的分析,才能有效地優(yōu)化操作語言。
2.2.3 加強(qiáng)數(shù)據(jù)的分頁技術(shù)
在應(yīng)用系統(tǒng)中有效使用分頁技術(shù)可以在一定程度上減少數(shù)據(jù)庫查詢工作的工作量,因?yàn)樗梢栽诿看味颊故窘o用戶一個(gè)固定的數(shù)據(jù)量,來降低網(wǎng)絡(luò)在傳輸數(shù)據(jù)過程當(dāng)中的一些負(fù)荷,加強(qiáng)數(shù)據(jù)的分頁技術(shù)可以有效避免用戶因?yàn)椴樵兇罅康臄?shù)據(jù)而對(duì)網(wǎng)頁產(chǎn)生的疲倦感,提升用戶的使用體驗(yàn)。
2.2.4 建立數(shù)據(jù)緩存
在系統(tǒng)的日常工作中,驗(yàn)證相關(guān)的信息需要將用戶的密碼與數(shù)據(jù)庫進(jìn)行匹配,才能進(jìn)入網(wǎng)頁,這樣的工作過程會(huì)浪費(fèi)很多的時(shí)間以及耗費(fèi)很大的資源量,并且在如今高并發(fā)的情況下,用戶頻繁的對(duì)數(shù)據(jù)庫進(jìn)行訪問,會(huì)在很大程度上降低系統(tǒng)的性能,所以在程序與數(shù)據(jù)庫創(chuàng)立連接的中間層建立數(shù)據(jù)緩存,可以在一定程度上減少數(shù)據(jù)庫的訪問次數(shù),極大提高系統(tǒng)響應(yīng)的速度。
2.2.5 將頁面靜態(tài)化
在一個(gè)網(wǎng)頁總的展示頁面當(dāng)中,肯定會(huì)運(yùn)用很大量的數(shù)據(jù)庫的操作語言來獲取信息,但是這個(gè)操作十分的復(fù)雜,并且通過頻繁的訪問會(huì)增大服務(wù)器處理數(shù)據(jù)的壓力,使用戶的體驗(yàn)感受到影響,并且系統(tǒng)的性能也會(huì)在一定程度上受到影響。所以要想改善這一局面,就可以將這類頁面進(jìn)行靜態(tài)化的處理,并且進(jìn)行靜態(tài)化的處理會(huì)使操作過程變得簡(jiǎn)單,提高了整個(gè)頁面的運(yùn)行速度,并且不會(huì)改變頁面中原來擁有的內(nèi)容。
2.3 對(duì)Web應(yīng)用系統(tǒng)中數(shù)據(jù)庫的優(yōu)化方案
將數(shù)據(jù)庫進(jìn)行優(yōu)化可以降低數(shù)據(jù)在反應(yīng)時(shí)所花費(fèi)的時(shí)間,還可以提高數(shù)據(jù)庫的吞吐量。所以對(duì)數(shù)據(jù)庫進(jìn)行優(yōu)化可以做到三個(gè)步驟:第一是創(chuàng)建索引,使用戶在查詢資料的時(shí)候能夠很快找到自己想要的信息;第二是修改系統(tǒng)中缺省的配置,讓數(shù)據(jù)庫中內(nèi)存需求能夠得到滿足;第三是將數(shù)據(jù)進(jìn)行分表儲(chǔ)存,減少用戶在查詢時(shí)產(chǎn)生的一些記錄條數(shù),避免一些沒有必要的訪問,在一定程度上提高系統(tǒng)的檢索速度,增加用戶的體驗(yàn)。
3 結(jié) 論
隨著社會(huì)和科學(xué)技術(shù)的不斷發(fā)展,人們會(huì)在日常的生活中越來越多的使用到計(jì)算機(jī),所以面對(duì)如今高并發(fā)的情況,優(yōu)化Web應(yīng)用系統(tǒng)是必然的趨勢(shì),通過將Web系統(tǒng)中的前端、數(shù)據(jù)庫等進(jìn)行優(yōu)化,可以有效減少人們?cè)谑褂脮r(shí)進(jìn)行查詢的時(shí)間,提高用戶的體驗(yàn)感,使其能夠更好的發(fā)展。
參考文獻(xiàn):
[1] 楊林.基于Node.Js的Web系統(tǒng)性能提高方法研究 [D].陜西:西安理工大學(xué),2016.
[2] 王戀戀.高性能Web應(yīng)用系統(tǒng)架構(gòu)研究與優(yōu)化 [D].北京:北京郵電大學(xué),2016.
[3] 王亞楠,吳華瑞,黃鋒.高并發(fā)Web應(yīng)用系統(tǒng)的性能優(yōu)化分析與研究 [J].計(jì)算機(jī)工程與設(shè)計(jì),2014,35(8):2976-2981.
作者簡(jiǎn)介:王偉(1978-),男,漢族,遼寧海城人,研發(fā)中心總經(jīng)理,工程師,博士研究生,研究方向:高并發(fā)分布式系統(tǒng)設(shè)計(jì)、基于Hadoop的大數(shù)據(jù)平臺(tái)設(shè)計(jì)。