- 相關(guān)推薦
WEB服務(wù)器的優(yōu)化方法簡(jiǎn)介
在對Web服務(wù)器進(jìn)行優(yōu)化時(shí)要根據真實(shí)的Web應用系統的情況和特征來(lái)采取有針對性地優(yōu)化方案。首先根據不同的網(wǎng)絡(luò )特性來(lái)看:在局域網(wǎng)中,降低M T U (最大傳輸單位)值對可以避免復制數據和求校驗,而通過(guò)優(yōu)化select系統調用或在Socket事件處理器中執行計算可以?xún)?yōu)化請求并發(fā)管理,利用HTTP1.1持續連接等都可以使系統性能得到相應的改善,但在廣域網(wǎng)的環(huán)境下卻沒(méi)有什么大的作用,有的甚至恰恰相反。
例如:減少用戶(hù)連接的MTU會(huì )增加服務(wù)器處理開(kāi)銷(xiāo),采用網(wǎng)絡(luò )延遲、帶寬限制和使用HTTP1.1的持續連接在廣域網(wǎng)中不會(huì )對服務(wù)器性能有什么大的影響。在廣域網(wǎng)中,終端用戶(hù)的請求的等待時(shí)間依賴(lài)于與網(wǎng)絡(luò )延遲的程度,連接帶寬限制情況。對于廣域網(wǎng),軟硬中斷在網(wǎng)絡(luò )處理中占有很大的分量,所以采用適應的中斷處理機制將會(huì )給服務(wù)器的響應能力帶來(lái)很大的好處;將服務(wù)器定位在內核和將基于進(jìn)程設計改為基于事務(wù)處理也可以不同程度的提高服務(wù)器的性能。
關(guān)于Web負載,除了對Web負載的特征進(jìn)行分析以便在評測時(shí)更好地再現真實(shí)負載之外,還要考慮Web服務(wù)器所在的網(wǎng)絡(luò )環(huán)境下負載的情況。人們不僅要求服務(wù)器滿(mǎn)足正常的工作負載要求,而且在高峰時(shí)期依然要保持較高的吞吐量。但是,服務(wù)器在高負載的情況下的性能表現往往低于人們的期望。
服務(wù)器過(guò)載的情況分為兩種:一種為瞬間過(guò)載,即服務(wù)器暫時(shí)的、短時(shí)間的超載,這種情況主要是由服務(wù)器負載的特點(diǎn)引起的。大量的研究表明,Web請求的網(wǎng)絡(luò )通信量分布是自相似的,即Web請求的通信量可以在很大范圍內有顯著(zhù)的變化。這就造成服務(wù)器常常短時(shí)間的超載,但這樣情況持續的時(shí)間一般很短。一種是服務(wù)器長(cháng)時(shí)間的超載,這種情況一般是由某一特殊事件引起的,例如服務(wù)器受到拒絕服務(wù)攻擊或者發(fā)生了“活鎖現象。
第一種服務(wù)器超載情況是不可避免的,但第二種情況則可以通過(guò)對服務(wù)器改進(jìn)來(lái)改善。拋開(kāi)惡意的攻擊不算,仔細分析服務(wù)器處理信息包的過(guò)程可以發(fā)現,造成系統在超載情況下性能下降的根本原因是高優(yōu)先級處理階段對CPU的不公平搶占。
因此,如果限制高優(yōu)先級處理階段對CPU的占用率,或者限制處理高優(yōu)先級的CPU個(gè)數,都可以減輕或者消除收包活鎖現象。具體的可以采用以下的方法:
一、采用輪詢(xún)機制。為了減少中斷對系統性能的影響,在負載正常的情況下采用“下半處理 的方法就非常有效,而在高負荷情況下,采用這個(gè)方法仍然會(huì )造成活鎖現象,這時(shí)可以采用輪詢(xún)機制。雖然這個(gè)方法在負載正常的情況下會(huì )造成資源的浪費和響應速度降低,但在網(wǎng)絡(luò )數據頻繁到達服務(wù)器時(shí)就要比中斷驅動(dòng)技術(shù)有效的多。
二、減少上下文切換。這種方法不管服務(wù)器在什么情況下對性能改善都很有效,這時(shí)可以采用引入核心級(kerne1—leve1)或硬件級數據流的方法來(lái)達到這個(gè)目的。核心級數據流是將數據從源通過(guò)系統總線(xiàn)進(jìn)行轉發(fā)而不需要使數據經(jīng)過(guò)應用程序進(jìn)程,這個(gè)過(guò)程中因為數據在內存中,因此需要CPU操作數據。
硬件級數據流則是將數據從源通過(guò)私有數據總線(xiàn)或是雖等DMA通過(guò)系統總線(xiàn)進(jìn)行轉發(fā)而不需要使數據經(jīng)過(guò)應用程序進(jìn)程,這個(gè)過(guò)程不需要CPU操作數據。這樣在數據傳輸過(guò)程中不需要用戶(hù)線(xiàn)程的介入,減少了數據被拷貝的次數,減少了上下文切換的開(kāi)銷(xiāo)。
三、減低中斷的頻率(主要是針對高負荷情況的方法)。這里主要有兩種方法:批中斷和暫時(shí)關(guān)閉中斷。批中斷可以在超載時(shí)有效的抑制活鎖現象,但對服務(wù)器的性能沒(méi)有什么根本性的改進(jìn);當系統出現接收活鎖跡象時(shí),可以采用暫時(shí)關(guān)閉中斷的方法來(lái)緩和系統的負擔,當系統緩存再次可用時(shí)可以再打開(kāi)中斷,但這種方法在接收緩存不夠大的情況下會(huì )造成數據包丟失。
Web服務(wù)器性能是整個(gè)Web系統的關(guān)鍵環(huán)節,提高Web服務(wù)器的性能也是長(cháng)久以來(lái)人們一直關(guān)注的課題。這里通過(guò)對Web服務(wù)器的工作原理和現有的優(yōu)化方法和技術(shù)的分析,得出了對待Web服務(wù)器性能的提高也應該具體問(wèn)題具體分析,要在具體的應用環(huán)境中,根據其特點(diǎn)來(lái)采取相應的優(yōu)化措施。
【W(wǎng)EB服務(wù)器的優(yōu)化方法簡(jiǎn)介】相關(guān)文章:
有關(guān)web服務(wù)器硬件配置的進(jìn)階知識08-20
電腦軟件優(yōu)化方法06-23
網(wǎng)站鏈接優(yōu)化方法11-29
網(wǎng)站結構優(yōu)化方法08-25
服務(wù)器常規維修與判斷方法10-10
PostgreSQL服務(wù)器啟動(dòng)及關(guān)閉方法08-21
網(wǎng)站用戶(hù)體驗優(yōu)化方法08-26
服務(wù)器硬件管理和維護方法09-12