王偉 譚松榮
摘 要:Web應用系統(tǒng)在大量用戶進行訪問的情況下容易出現(xiàn)網(wǎng)站響應的時間過長、系統(tǒng)崩潰和癱瘓等現(xiàn)象,并且隨著社會不斷地發(fā)展,使用互聯(lián)網(wǎng)的用戶變得越來越多,所以開發(fā)人員要對Web應用系統(tǒng)進行最大限度的優(yōu)化,以保證Web應用系統(tǒng)的使用質(zhì)量。所以改變Web正面臨的問題是刻不容緩的,因此本文主要分析和研究了高并發(fā)Web系統(tǒng)性能的優(yōu)化方法。
關(guān)鍵詞:高并發(fā);Web應用系統(tǒng);性能優(yōu)化
中圖分類號:TP311.52 文獻標識碼:A 文章編號: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應用系統(tǒng)目前正面臨的問題,開發(fā)人員就要對系統(tǒng)中的前端、后臺程序、數(shù)據(jù)庫等進行優(yōu)化,讓服務器的配置、數(shù)據(jù)庫的性能和Web容器的性能等都得到提高,保證Web應用系統(tǒng)在面對高并發(fā)的情況下不出現(xiàn)崩潰、響應時間長等問題,提高用戶在使用時的體驗感,使Web應用系統(tǒng)的發(fā)展更加良好。
1 Web應用系統(tǒng)性能優(yōu)化的必要性
決定Web應用系統(tǒng)性能好壞的因素主要有四個,其中包括頁面的響應時間、并發(fā)連接的最大化、單位時間內(nèi)需要處理的HTTP的錯誤數(shù)量、服務器HTTP的帶寬,面對目前市場上Web應用系統(tǒng)存在的問題,盡管通過擴大服務器的內(nèi)存以及增加網(wǎng)絡出口的帶寬等方法使系統(tǒng)的性能得到了一定的提高,但是這些方法還不能有效解決問題的根本所在,并且隨著社會的不斷發(fā)展,使用Web應用系統(tǒng)的人數(shù)越來越多,沒有一個精簡、性能優(yōu)良的Web系統(tǒng)根本無法支撐日益增長的人數(shù)需求。
2 Web應用系統(tǒng)的優(yōu)化方案
2.1 Web應用系統(tǒng)中前端的優(yōu)化方案
要充分對頁面的加載過程進行了解才能對Web應用系統(tǒng)中的前端進行優(yōu)化。通過了解知道,在整個頁面進行加載的過程中,其下載到瀏覽器中的是一個不包括圖片格式的HTML文檔,這一下載過程只有整個頁面加載的十分之一,當文檔加載完成之后,就會進入到一個對頁面進行解析的步驟,首先會解析head的標簽,在解析的過程中可能會遇到一些引用的JS文件等,這種情況下瀏覽器就不會再繼續(xù)對頁面進行加載,而是會先對標簽進行請求工作,待請求通過之后才會繼續(xù)進行解析,當該標簽被解析完成之后,就會對body的標簽繼續(xù)進行解析,與解析head標簽不同的是,它是會將一個標簽所對應的SRC的內(nèi)容進行請求,其中如果有很多個標簽,瀏覽器就會對對應的SRC內(nèi)容進行并發(fā)的請求。其主要的解析過程如圖1所示。
通過描述相關(guān)的頁面加載過程,可以清楚的知道頁面的質(zhì)量在一定程度上影響了高并發(fā)網(wǎng)站運行的速度,如果頁面的內(nèi)存太大,那么在頁面進行加載的時候就會耗費比較大的網(wǎng)絡帶寬,所以,要想在一定程度上提升網(wǎng)站運行的速度,就要設(shè)計比較簡潔的網(wǎng)頁,減少一些沒有用的網(wǎng)絡流量,使帶寬的壓力得到一定的緩解,因此對Web應用系統(tǒng)的前端進行優(yōu)化,可以做到以下五個步驟:第一,在一定程度上減少引用過多的外部文件,通過將多個外部文件進行合并,有效減少網(wǎng)站中HTTP的請求;第二,在頁面進行加載的過程當中,可以將一些暫時還未用到的外部文件在頁面的底部進行加載,有效減少等待的時間;第三,在瀏覽器中緩存一些網(wǎng)站經(jīng)常會用到的重復文件,減少在進行HTTP請求時對服務器的壓力,在一定程度上會縮短頁面加載的時間;第四,通過對頁面中的圖片進行像素、格式等的有效處理,將圖片的大小進行裁剪,減少加載圖片的時間;第五,可以使用Ajah的異步加載,使網(wǎng)站能夠在不刷新頁面的情況下對頁面上的內(nèi)容進行更新,在一定程度上減少用戶等待頁面加載的時間。
2.2 Web應用系統(tǒng)中后臺程序的優(yōu)化方案
2.2.1 對Session進行設(shè)置
在網(wǎng)站的運行過程中,由于Web應用系統(tǒng)中無狀態(tài)記憶的特征,因此在網(wǎng)站的請求與服務器建立起Web應用系統(tǒng)的連接時,其狀態(tài)不能進行共享,比如說如果一個用戶在登錄時的用戶標識是1,在進行密碼修改時,系統(tǒng)就不會對用戶進行定位以獲取其信息,這是因為系統(tǒng)中的一個Session在定義變量的時候,在其生命周期內(nèi)可以使用戶訪問所有的鏈接,并且在全局變量的傳遞工作中起著重要的作用,由于Session擁有比較好的便捷性,因此許多的技術(shù)開發(fā)人員經(jīng)常會使用Session,所以在進行高并發(fā)的訪問時,就會產(chǎn)生大量的內(nèi)存,使服務器的壓力極大地增加。要想有效解決這個問題,就需要在適當?shù)某潭壬辖鉀Q好Session的問題,比如盡全力將Session中的信息進行精簡,選擇將一些用戶經(jīng)常會使用到的信息儲存到該系統(tǒng)中,并且當用戶使用后,可以有效地將一些無用信息清除,在一定程度上降低服務器內(nèi)Session所占的內(nèi)存。
2.2.2 優(yōu)化數(shù)據(jù)庫中的操作語言
在目前的關(guān)系型的數(shù)據(jù)庫當中,要訪問數(shù)據(jù)就必須通過編寫相應的數(shù)據(jù)庫操作語言,所以優(yōu)化數(shù)據(jù)庫中的操作語言是必然的,目前在編寫操作語言的過程中,由于每個項目的規(guī)模、數(shù)據(jù)關(guān)系等因素都不相同,所以要對這些因素進行仔細和反復的分析,才能有效地優(yōu)化操作語言。
2.2.3 加強數(shù)據(jù)的分頁技術(shù)
在應用系統(tǒng)中有效使用分頁技術(shù)可以在一定程度上減少數(shù)據(jù)庫查詢工作的工作量,因為它可以在每次都展示給用戶一個固定的數(shù)據(jù)量,來降低網(wǎng)絡在傳輸數(shù)據(jù)過程當中的一些負荷,加強數(shù)據(jù)的分頁技術(shù)可以有效避免用戶因為查詢大量的數(shù)據(jù)而對網(wǎng)頁產(chǎn)生的疲倦感,提升用戶的使用體驗。
2.2.4 建立數(shù)據(jù)緩存
在系統(tǒng)的日常工作中,驗證相關(guān)的信息需要將用戶的密碼與數(shù)據(jù)庫進行匹配,才能進入網(wǎng)頁,這樣的工作過程會浪費很多的時間以及耗費很大的資源量,并且在如今高并發(fā)的情況下,用戶頻繁的對數(shù)據(jù)庫進行訪問,會在很大程度上降低系統(tǒng)的性能,所以在程序與數(shù)據(jù)庫創(chuàng)立連接的中間層建立數(shù)據(jù)緩存,可以在一定程度上減少數(shù)據(jù)庫的訪問次數(shù),極大提高系統(tǒng)響應的速度。
2.2.5 將頁面靜態(tài)化
在一個網(wǎng)頁總的展示頁面當中,肯定會運用很大量的數(shù)據(jù)庫的操作語言來獲取信息,但是這個操作十分的復雜,并且通過頻繁的訪問會增大服務器處理數(shù)據(jù)的壓力,使用戶的體驗感受到影響,并且系統(tǒng)的性能也會在一定程度上受到影響。所以要想改善這一局面,就可以將這類頁面進行靜態(tài)化的處理,并且進行靜態(tài)化的處理會使操作過程變得簡單,提高了整個頁面的運行速度,并且不會改變頁面中原來擁有的內(nèi)容。
2.3 對Web應用系統(tǒng)中數(shù)據(jù)庫的優(yōu)化方案
將數(shù)據(jù)庫進行優(yōu)化可以降低數(shù)據(jù)在反應時所花費的時間,還可以提高數(shù)據(jù)庫的吞吐量。所以對數(shù)據(jù)庫進行優(yōu)化可以做到三個步驟:第一是創(chuàng)建索引,使用戶在查詢資料的時候能夠很快找到自己想要的信息;第二是修改系統(tǒng)中缺省的配置,讓數(shù)據(jù)庫中內(nèi)存需求能夠得到滿足;第三是將數(shù)據(jù)進行分表儲存,減少用戶在查詢時產(chǎn)生的一些記錄條數(shù),避免一些沒有必要的訪問,在一定程度上提高系統(tǒng)的檢索速度,增加用戶的體驗。
3 結(jié) 論
隨著社會和科學技術(shù)的不斷發(fā)展,人們會在日常的生活中越來越多的使用到計算機,所以面對如今高并發(fā)的情況,優(yōu)化Web應用系統(tǒng)是必然的趨勢,通過將Web系統(tǒng)中的前端、數(shù)據(jù)庫等進行優(yōu)化,可以有效減少人們在使用時進行查詢的時間,提高用戶的體驗感,使其能夠更好的發(fā)展。
參考文獻:
[1] 楊林.基于Node.Js的Web系統(tǒng)性能提高方法研究 [D].陜西:西安理工大學,2016.
[2] 王戀戀.高性能Web應用系統(tǒng)架構(gòu)研究與優(yōu)化 [D].北京:北京郵電大學,2016.
[3] 王亞楠,吳華瑞,黃鋒.高并發(fā)Web應用系統(tǒng)的性能優(yōu)化分析與研究 [J].計算機工程與設(shè)計,2014,35(8):2976-2981.
作者簡介:王偉(1978-),男,漢族,遼寧海城人,研發(fā)中心總經(jīng)理,工程師,博士研究生,研究方向:高并發(fā)分布式系統(tǒng)設(shè)計、基于Hadoop的大數(shù)據(jù)平臺設(shè)計。