新聞NEWS
企業(yè)網站性能優(yōu)化實例分析
前段時間對某個企業(yè)應用網站進行了一次優(yōu)化分析,解決這個網站經常死機和CPU高負載的種種問題,根據我接觸的一些應用和服務器配置,我對這個案例總結了一些優(yōu)化方案,用來解決網站的高負載和高并發(fā)等問題,這里我和大家分享一下這個案例,西寧網絡公司和大家一起探討一下這種解決方案的優(yōu)劣。
一、網站當前狀況和性能現(xiàn)狀
系統(tǒng)硬件配置:CPU為兩個Intel Xeon 2.4G,物理內存為2.5G.
系統(tǒng)軟件配置:操作系統(tǒng)為Windows Server 2003標準版,數據庫為SQL Server 2000.
服務器訪問量:工作日:訪問人數 10000,瀏覽量 30000 ,休息日:訪問人數 4000,瀏覽量 10000,每用戶訪問頁面為2.88頁面,平均停留時間為3分鐘。由于存在大型下載文件,服務器流量每天有80G到160G左右。
WEB系統(tǒng):采用Tomcat服務器,使用Struts和Hibernate.
網站系統(tǒng):網站有幾套不同的系統(tǒng),有新聞發(fā)布CMS系統(tǒng)、文件下載系統(tǒng)、反饋系統(tǒng)等等,使用基于Java的Struts和Hibernate的MVC架構,動態(tài)應用。
服務器CPU目前通常為40%左右,很多情況能增加到80-90%.
二、網站性能分析
通常情況下CPU達到80%說明系統(tǒng)性能存在瓶頸,需要找出系統(tǒng)的瓶頸究竟在哪里。
分析過程是,遠程登錄服務器,打開SQL Server 2000的事件探查器,記錄和分析SQL語句,同時打開任務管理器,查看各個進程占用CPU的狀況。
經過查詢,SQLServer占用較大的CPU,說明系統(tǒng)調用CPU查詢較多,初步可以確認是數據庫引起的系統(tǒng)瓶頸,由于使用Struts和Hibernate應用,調用數據庫頻繁,因此可以采用減少SQL查詢的方式降低對SQLServer的調用,通常情況下有兩種方法:Cache或靜態(tài)化。
另外,服務器的Web系統(tǒng)采用的架構存在一些問題,因為存在大型下載文件,占用的流量非常大,而Tomcat本身對于靜態(tài)文件的處理性能并不好,也會對系統(tǒng)性能產生負面的影響。
三、網站和服務器優(yōu)化方案
1、緩存
將頁面靜態(tài)化是通常的優(yōu)化方案,但是對于當前的Tomcat服務器下的Struts和Hibernate未必有效,因為Tomcat對于靜態(tài)HTML文件本身支持并不理想,并且新聞內容更新較為頻繁。因此,在現(xiàn)有架構的基礎上,可以使用hibernate的ehcached的動態(tài)緩存的方式,在動態(tài)應用中減少數據庫負載,提升訪問速度。
使用ehcache對訪問頻率高,對數據庫消耗大的頁面進行動態(tài)緩存(時間10分鐘),在緩存的時間范圍內這些頁面直接重緩存中讀取,無需訪問數據庫,提高這些頁面的訪問速度,減小數據庫訪問的壓力。這樣SQL Server數據庫的負載會大為降低。
2、靜態(tài)化
對于一般的網站來說,效率最高、消耗最小的就是純靜態(tài)化的html頁面,所以我們盡可能使我們的網站上的頁面采用靜態(tài)頁面來實現(xiàn),這個最簡單的方法其實也是最有效的方法。因此,從長遠考慮,需要對當前網站的架構進行一番調整,以適應靜態(tài)化頁面的需求。
首先,由于Tomcat對于靜態(tài)頁面支持不太好,也不支持URL 重寫,因此需要安裝Apache服務器。
其次,由于Struts對于搜索引擎不友好,因此將其全部轉換為靜態(tài)HTML頁面,即可降低對數據庫的查詢次數,也可提高對搜索引擎的友好度。因此需要使用HTML靜態(tài)化的方式優(yōu)化服務器端的WEB程序。
具體實施方案是,將現(xiàn)有Tomcat配置為8080端口,安裝Apache服務器,配置為80端口,在Apache中修改httpd.conf文件,使得Tomcat解析JSP文件,靜態(tài)HTML文件、圖片文件、大型下載文件使用性能更好的Apache支持。
修改Apache的.haccess文件,將Struts應用重寫為靜態(tài)Html文件形式,修改相關代碼,使得其能自動生成靜態(tài)HTML文件。
優(yōu)化訪問量最多的頁面,首頁index.jsp為目前訪問量最多的頁面,里面的動態(tài)代碼刪除,將這個頁面轉化為靜態(tài)的html頁面index.html.
3、應用部署
如果資金允許的話,可以將數據庫SQL Server 2000升級為SQLServer 2005,并單獨部署到另外一臺獨立服務器上,文件下載也單獨部署一臺服務器。
由于Tomcat本身的局限性,一個Tomcat的資源無法無限利用服務器的所有資源,并且Tomcat需要響應的請求太多,勢必影響到整體的性能,因此配置多服務器可以使得Web網站的負載大幅降低,從而提高整體的響應能力。
不過這種部署的缺點是需要付出升級軟件、購買服務器、托管帶寬等成本開銷,建議不到萬不得已,可以不用付出額外的資金升級。
以上就是青晟網絡對企業(yè)應用網站進行分析和優(yōu)化的具體步驟和方案,希望能起到拋磚引玉的作用,供大家參考。
更多青晟網絡資訊請登錄官方網站:http://www.qmvip.net或者http://www.icbiesd.com或撥打青晟網絡客服電話:15009714454,青晟網絡竭誠為您服務!