- 相關推薦
Web系統架構的性能優化
隨著網絡的發展,使得許多系統開發、設計者對系統的設計、維護要求越來越高。那么如何能使系統的性能得到更好的運用,我們一起來看看!
1 靜態頁面
大家都知道,效率最高、消耗最小的就是純靜態化的html頁面,所以要盡可能使系統上的頁面采用靜態頁面來實現,這個最簡單的方法其實也是最有效的方法。但是對于內容多且頻繁更新的系統,無法全部手動去逐個實現,也許可以采用信息發布系統CMS來管理和實現。盡可能的靜態化也是提高性能的必要手段,同時頁面靜態化也是某些緩存策略使用的手段,對于系統中頻繁使用數據庫查詢但內容更新很小的應用,可以考慮使用頁面靜態化來實現,這些信息都可以進行后臺管理并且存儲在數據庫中,這些信息其實大量被前臺程序調用,我們可以采用Ajax的方式來處理相關的請求操作,針對于查詢數據來說這樣就可以根據所需來獲取相應的數據,而不必要刷新整個頁面。其實我們是不是可以考慮一下,像開發游戲那樣把相關的都放到客戶端來做處理呢,這樣就大大減少了服務器的負載,服務器可以更好地提供服務,而不必要去做太多的處理。面向對象化的腳本編程,更好地解決了難于維護的問題。
注:不建議使用Ext、Dwr等Ajax框架,這些框架都很繁瑣不利于維護,可以使用相對比較簡單的Json、JQuery等。
2 程序代碼
程序是構成系統的核心,是系統的靈魂。良好的命名規則與編程規范可以減少程序代碼之間的冗余,程序編寫的好與壞、性能的高與低都決定了系統是否可以高效率的運行。基于現在都是面向接口化編程,就更好地解決了程序的耦合性。分層架構與插件化架構已成為Web系統架構的趨勢,它可以不依賴其他接口或程序使系統也可以運行,大大減少系統代碼的重構,更有效地降低了維護成本。
3 影像服務器分離
大家知道,對于Web服務器來說,不管是Apache、IIS還是其他容器,影像是最消耗資源的,于是我們有必要將影像與頁面進行分離,獨立的影像服務器,甚至很多臺影像服務器,這樣的架構可以降低提供頁面訪問請求的服務器系統壓力,并且可以保證系統不會因為影像問題而崩潰。在應用服務器和影像服務器上,可以進行不同的配置優化,比如Apache在配置ContentType的時候可以盡量少支持LoadModule,以保證更高的系統消耗和執行效率。京北方也采用了影像服務器架構上的分離,并且還提供了高效率的影像圖片壓縮技術,這樣更好地節約了影像服務器的空間,還可以針對不同要求提取相關影像。另外在處理靜態頁面或者圖片、JS等訪問方面,可以考慮使用lighttpd代替Apache,它提供了更輕量級和更高效的處理能力。
4 數據庫集群和庫表散列
金融行業系統都有復雜的應用,這些應用必須使用數據庫,那么在面對大量數據處理的時候,數據庫的瓶頸很快就能顯現出來,這時一臺數據庫將很快無法滿足應用,于是我們需要使用數據庫集群或庫表散列。在數據庫集群方面,很多數據庫都有自己的解決方案,Oracle、Sybase等都有很好的方案。對于使用了什么樣的DB,就參考相應的解決方案來實施即可。數據庫集群由于在架構、成本、擴張性方面都會受到所采用DB類型的限制,于是我們需要從應用程序的角度來考慮改善系統架構,庫表散列是常用并且最有效的解決方案。我們在應用程序中安裝業務和應用或者功能模塊將數據庫進行分離,不同的模塊對應不同的數據庫或者表,再按照一定的策略對某個頁面或者功能進行更小的數據庫散列。比如影像表,按照影像ID進行表散列,這樣就能夠低成本地提升系統的性能并且有很好的擴展性。最終可以在配置文件中進行簡單的配置便能讓系統隨時增加一臺低成本的數據庫進來補充系統性能。
5 緩存機制
緩存一詞搞技術的都接觸過,很多地方用到緩存。這里先講述最基本的兩種緩存。架構方面的緩存,對Apache比較熟悉的人都能知道Apache提供了自己的modproxy緩存模塊,也可以使用外加的Squid進行緩存,這兩種方式均可以有效地提高Apache的訪問響應能力。系統程序開發方面的緩存,Linux上提供的Memcached是常用的緩存方案,可以在Web開發中使用,可以實時或者Cron地把數據、對象等內容進行緩存。另外在使用Web語言開發的時候,各種語言基本都有自己的緩存模塊和方法,Java就更多了。
6 負載均衡
負載均衡(Load Balance)建立在現有網絡結構之上,它提供了一種廉價、有效、透明的方法擴展網絡設備和服務器的帶寬、增加吞吐量、加強網絡數據處理能力、提高網絡的靈活性和可用性負載均衡,是系統解決高負荷訪問和大量并發請求采用的終極解決辦法。
(1)硬件負載均衡。硬件負載均衡解決方案是直接在服務器和外部網絡間安裝負載均衡設備,這種設備我們通常稱之為負載均衡器,由于專門的設備完成專門的任務,獨立于操作系統,整體性能得到大量提高,加上多樣化的負載均衡策略、智能化的流量管理,可達到最佳的負載均衡需求。硬件負載均衡在功能、性能上優于軟件方式,不過成本昂貴,如果可以的話還是比較好的選擇。
(2)軟件負載均衡。軟件負載均衡解決方案是指在一臺或多臺服務器相應的操作系統上安裝一個或多個附加軟件來實現負載均衡,如DNS Load Balance,Connect Control等,它的優點是基于特定環境、配置簡單、使用靈活、成本低廉,可以滿足一般的負載均衡需求。
【Web系統架構的性能優化】相關文章:
系統架構師性能知識整理12-29
Linux系統Web服務器性能測試01-23
系統架構設計師:優化顯示速度01-11
系統架構設計師:性能調整和診斷01-11
基于Web的MES系統安全架構設計及分析10-16
NVIDIA顯卡性能優化設置09-17
如何搭建系統CSS架構12-31
系統架構設計模式大全08-22
系統架構師是做什么的12-30
如何成為優秀的系統架構師06-03