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