王管沖
摘 要:任何網站在高峰期時,可能會出現性能衰減,甚至系統崩潰。本文闡述了前置排隊保護機制,資源動態調整,數據庫優化調整,內容分發網絡,網頁精簡等網站性能優化方法,充分利用現有資源,防止崩潰,提高性能,節約硬件成本。
關鍵詞:網站;高峰期;性能優化;統一門戶
1 引言
隨著財政辦公信息化水平不斷提高,業務系統也越來越多,因此要將各個財政業務整合到一個一體化的財政平臺,建立基于平臺的統一門戶管理。在統一門戶管理中有有一點非常重要,那就是門戶的性能問題。由于集中了全省的財政用戶、銀行用戶、預算單位用戶、甚至是普通大眾用戶,用戶數量大大增加;再加上財政工作具有明顯的時間性,在年初、年末、月末等時間是高峰期,訪問量非常大。因此,做好網站的性能優化,順利應對高峰期的信息化工作就顯得尤為重要。
2 網站性能優化的方法
我們平時上網搶購時經常會發現,由于訪問人數過多,搶購開始前的一段時間,搶購網站就逐漸進入半癱瘓狀態,開始搶購后更是如此,搶購開始幾十分鐘后,不斷刷新,勉強可以看到該商品的成功購買數只有十幾二十個,大概相當于每分鐘成交一筆,而我們平時隨意找一臺個人電腦配個網站,也不只這樣的性能。這說明網站在高峰期出現擁堵,嚴重降低了系統性能。服務器的性能是在設計軟件系統時根據可能的訪問量確定的,平時服務器的高性能閑置無用,到高峰期的時候性能反而降低,訪問速度變慢,不耐煩的用戶反復點擊刷新頁面,惡性循環,最終導致系統崩潰。因此要想優化網站性能,首先得保證系統在高峰期時性能不降低。
⑴我認為首先應該在web服務器的前端放置一臺高I/O的前置服務器,放置簡單的引導頁面,該頁面不存取數據庫,故不會對數據庫造成壓力,同時由于頁面簡單,能容納的訪問量比主web服務器要高許多倍,不易造成過載。該頁面不僅起到引導作用,同時它還能統計在線用戶數,探查后端的應用服務器和數據庫服務器的繁忙程度,如果他們過于繁忙,則阻止用戶訪問后端,讓用戶進入排隊隊列,并給出友好的提示,如“當前在線人數過多,系統正在為您排隊。請勿點擊刷新頁面,刷新后您將重新排隊”,還可以給出一個簡單的排隊gif動畫,這樣用戶就不會反復點擊頁面了。以前在學校選課系統,全校幾萬人都會在剛開放的時候選好老師開的課,并發量很大,就采用了強制限流排隊的方法,雖然服務器是很爛一個臺式機 ,但是好歹可以讓大家按照先后順序有條不紊地把課選好。
⑵在高峰期時段,應該關閉或限制一些當前不急用和少人用的系統,利用云技術將資源集中供應給高峰應用,如我們的數據庫小型機,分為四個虛擬硬分區,其cpu核數、內存等資源均可進行調整,減少閑置資源,投入高峰資源池,以適應高峰期應用。
⑶高峰期間,應檢查哪些數據訪問率最高,增加對這些數據表的索引,優化查詢視圖,并可以將這些數據表常駐服務器的高速SSD硬盤,能使訪問速度發生數量級上的提高。
⑷對于瓶頸在web服務器的繁忙應用,則可考慮使用CDN(內容分發網絡),在訪問量較大的地市、縣等各個出口節點設置CDN代理緩存服務器,使用戶可就近取得所需內容,解決網絡擁擠的狀況,節約帶寬,提高用戶訪問網站的響應速度,降低主服務器的負載。
⑸要優化網頁結構,網頁上盡量減少js代碼的使用,如需使用應盡量簡化;減少圖片數量和大??;調整網頁結構,使其簡單化,一個好網站一定是一個簡單的網站,百度就是個成功的案例。
⑹在系統上線前應做好壓力測試,真實模擬現實中的高峰期,系統上線后也必須詳細記錄運行狀況,找出瓶頸所在,使用上面的方法解決各種瓶頸。
3 結論
無論哪個網站,都可能出現高峰期的性能問題,一味增加設備投入耗資巨大,如果找不出癥結所在,仍然是徒勞無功。找出系統瓶頸所在,利用文中所述的前置排隊保護機制,資源動態調整方法,數據庫優化調整,內容分發網絡,網頁精簡等手段,充分利用現有資源,可以幾十數百倍的提高性能。只有當優化手段無法解決問題時,才根據前面查出的瓶頸,增加相應設備的投入。
[參考文獻]
[1]傅清祥,王曉東.《算法與數據結構》.電子工業出版社.
[2]楊文龍,姚淑珍,吳蕓.《軟件工程》.電子工業出版社.
[3]羅曉沛,侯炳輝.《系統分析師教程》.清華大學出版社.