在對web
伺服器進行優化時要根據真實的web
應用系統的情況和特徵來採取有針對性地優化方案。首先根據不同的網路特性來看:在區域網中,降低m t u (最大傳輸單位)值對可以避免複製資料和求校驗,而通過優化select系統呼叫或在socket事件處理器中執行計算可以優化請求併發管理,利用http1.1持續連線等都可以使系統效能得到相應的改善,但在廣域網的環境下卻沒有什麼大的作用,有的甚至恰恰相反。
例如:減少使用者連線的mtu會增加伺服器處理開銷,採用網路延遲、頻寬限制和使用http1.1的持續連線在廣域網中不會對伺服器效能有什麼大的影響。在廣域網中,終端使用者的請求的等待
時間依賴於與網路延遲的程度,連線頻寬限制情況。對於廣域網,軟硬中斷在網路處理中占有很大的分量,所以採用適應的中斷處理機制將會給伺服器的響應能力帶來很大的好處;將伺服器定位在核心和將基於程序設計改為基於事務處理也可以不同程度的提高伺服器的效能。
關於web負載,除了對web負載的特徵進行分析以便在評測時更好地再現真實負載之外,還要考慮web伺服器所在的網路
環境下負載的情況。人們不僅要求伺服器滿足正常的工作負載要求,而且在高峰時期依然要保持較高的吞吐量。但是,伺服器在高負載的情況下的效能表現往往低於人們的期望。
伺服器過載的情況分為兩種:一種為瞬間過載,即伺服器暫時的、短時間的超載,這種情況主要是由伺服器負載的特點引起的。大量的研究表明,web請求的網路通訊
量分布是自相似的,即web請求的通訊量可以在很大範圍內有顯著的變化。這就造成伺服器常常短時間的超載,但這樣情況持續的時間一般很短。一種是伺服器長時間的超載,這種情況一般是由某一特殊事件引起的,例如伺服器受到拒絕服務
攻擊或者發生了「活鎖」現象。
第一種伺服器超載情況是不可避免的,但第二種情況則可以通過對伺服器改進來改善。拋開惡意的攻擊不算,仔細分析伺服器處理資訊包的過程可以發現,造成系統在超載情況下效能下降的根本原因是高優先順序處理階段對cpu的不公平搶占。
因此,如果限制高優先順序處理階段對cpu的佔用率,或者限制處理高優先順序的cpu個數,都可以減輕或者消除收包活鎖現象。具體的可以採用以下的
方法: 一、採用輪詢機制。為了減少中斷對系統效能的影響,在負載正常的情況下採用「下半處理」 的方法就非常有效,而在高負荷情況下,採用這個方法仍然會造成活鎖現象,這時可以採用輪詢機制。雖然這個方法在負載正常的情況下會造成資源
的浪費和響應速度降低,但在網路資料頻繁到達伺服器時就要比中斷驅動
技術有效的多。
二、減少上下文切換。這種方法不管伺服器在什麼情況下對效能改善都很有效,這時可以採用引入核心級(kerne1—leve1)或硬體級資料流的方法來達到這個目的。核心級資料流是將資料從源通過系統匯流排進行**而不需要使資料經過應用程式程序,這個過程中因為資料在記憶體中,因此需要cpu運算元據。
硬體級資料流則是將資料從源通過私有資料匯流排或是雖等dma通過系統匯流排進行**而不需要使資料經過應用
程式程序,這個過程不需要cpu運算元據。這樣在資料傳輸過程中不需要使用者執行緒的介入,減少了資料被拷貝的次數,減少了上下文切換的開銷。
三、減低中斷的頻率(主要是針對高負荷情況的方法)。這裡主要有兩種方法:批中斷和暫時關閉中斷。批中斷可以在超載時有效的抑制活鎖現象,但對伺服器的效能沒有什麼根本性的改進;當系統出現接收活鎖跡象時,可以採用暫時關閉中斷的方法來緩和系統的負擔,當系統快取再次可用時可以再開啟中斷,但這種方法在接收快取不夠大的情況下會造成
資料報丟失。
web伺服器效能是整個web系統的關鍵環節,提高web伺服器的效能也是長久以來人們一直關注的課題。這裡通過對web伺服器的工作原理和現有的優化方法和技術的分析,得出了對待web伺服器效能的提高也應該具體問題具體分析,要在具體的應用環境中,根據其特點來採取相應的優化措施。
WEB伺服器 與 應用伺服器
簡介 web伺服器 apache iis nginx 反向 伺服器 應用伺服器 tomcat weblogic jboss glassfish web伺服器則主要是讓客戶可以通過瀏覽器進行訪問,處理html檔案 應用伺服器處理業務邏輯 比如tomcat,支援jsp weblogic,支援ejb 兩者...
web伺服器與應用伺服器
web伺服器 web server 根據我們的定義,作為應用程式伺服器,它通過各種協議,可以包括http,把商業邏輯暴露給 expose 客戶端應用程式。web伺服器主要是處理向瀏覽器傳送html以供瀏覽,而應用程式伺服器提供訪問商業邏輯的途徑以供客戶端應用程式使用。應用程式使用此商業邏輯就象你呼叫...
應用伺服器安裝
1.安裝sql server 2008 r2 native client,注意區分cpu是32位還是64位的 2.copy xe2的midas到c windows system32 低版本的midas.dll會報錯 invalid package 3.命令列執行 regsvr32 midas.dll...