Web應用服務器優化方法
在對Web服務器進行優化時要根據真實的Web應用系統的情況和特征來采取有針對性地優化方案。首先根據不同的網絡特性來看:在局域網中,降低M T U (最大傳輸單位)值對可以避免復制數據和求校驗,而通過優化select系統調用或在Socket事件處理器中執行計算可以優化請求并發管理,利用HTTP1.1持續連接等都可以使系統性能得到相應的改善,但在廣域網的環境下卻沒有什么大的作用,有的甚至恰恰相反。
關于Web負載,除了對Web負載的特征進行分析以便在評測時更好地再現真實負載之外,還要考慮Web服務器所在的網絡環境下負載的情況。人們不僅要求服務器滿足正常的工作負載要求,而且在高峰時期依然要保持較高的吞吐量。但是,服務器在高負載的情況下的性能表現往往低于人們的期望。
服務器過載的情況分為兩種:一種為瞬間過載,即服務器暫時的、短時間的超載,這種情況主要是由服務器負載的特點引起的。大量的研究表明,Web請求的網絡通信量分布是自相似的,即Web請求的通信量可以在很大范圍內有顯著的變化。這就造成服務器常常短時間的超載,但這樣情況持續的時間一般很短。一種是服務器長時間的超載,這種情況一般是由某一特殊事件引起的,例如服務器受到拒絕服務攻擊或者發生了“活鎖”現象。
第一種服務器超載情況是不可避免的,但第二種情況則可以通過對服務器改進來改善。拋開惡意的攻擊不算,仔細分析服務器處理信息包的過程可以發現,造成系統在超載情況下性能下降的根本原因是高優先級處理階段對CPU的不公平搶占。
【編輯推薦】