簡述:關(guān)于Web負載,除了對Web負載的特征進行分析以便在評測時更好地再現(xiàn)真實負載之外,還要考慮Web服務(wù)器所在的網(wǎng)絡(luò)環(huán)境下負載的情況。人們不僅要求服務(wù)器滿足正常的工作負載要求,而且在高峰時期依然要保持較高
關(guān)于Web負載,除了對Web負載的特征進行分析以便在評測時更好地再現(xiàn)真實負載之外,還要考慮Web服務(wù)器所在的網(wǎng)絡(luò)環(huán)境下負載的情況。人們不僅要求服務(wù)器滿足正常的工作負載要求,而且在高峰時期依然要保持較高的吞吐量。但是,服務(wù)器在高負載的情況下的性能表現(xiàn)往往低于人們的期望。
服務(wù)器過載的情況分為兩種:一種為瞬間過載,即服務(wù)器暫時的、短時間的超載,這種情況主要是由服務(wù)器負載的特點引起的。大量的研究表明,Web請求的網(wǎng)絡(luò)通信量分布是自相似的,即Web請求的通信量可以在很大范圍內(nèi)有顯著的變化。這就造成服務(wù)器常常短時間的超載,但這樣情況持續(xù)的時間一般很短。一種是服務(wù)器長時間的超載,這種情況一般是由某一特殊事件引起的,例如服務(wù)器受到拒絕服務(wù)攻擊或者發(fā)生了“活鎖”現(xiàn)象。
第一種服務(wù)器超載情況是不可避免的,但第二種情況則可以通過對服務(wù)器改進來改善。拋開惡意的攻擊不算,仔細分析服務(wù)器處理信息包的過程可以發(fā)現(xiàn),造成系統(tǒng)在超載情況下性能下降的根本原因是高優(yōu)先級處理階段對CPU的不公平搶占。
因此,如果限制高優(yōu)先級處理階段對CPU的占用率,或者限制處理高優(yōu)先級的CPU個數(shù),都可以減輕或者消除收包活鎖現(xiàn)象。具體的可以采用以下的方法:
1、采用輪詢機制。為了減少中斷對系統(tǒng)性能的影響,在負載正常的情況下采用“下半處理” 的方法就非常有效,而在高負荷情況下,采用這個方法仍然會造成活鎖現(xiàn)象,這時可以采用輪詢機制。雖然這個方法在負載正常的情況下會造成資源的浪費和響應(yīng)速度降低,但在網(wǎng)絡(luò)數(shù)據(jù)頻繁到達服務(wù)器時就要比中斷驅(qū)動技術(shù)有效的多。
2、減少上下文切換。這種方法不管服務(wù)器在什么情況下對性能改善都很有效,這時可以采用引入核心級(kerne1—leve1)或硬件級數(shù)據(jù)流的方法來達到這個目的。核心級數(shù)據(jù)流是將數(shù)據(jù)從源通過系統(tǒng)總線進行轉(zhuǎn)發(fā)而不需要使數(shù)據(jù)經(jīng)過應(yīng)用程序進程,這個過程中因為數(shù)據(jù)在內(nèi)存中,因此需要CPU操作數(shù)據(jù)。
硬件級數(shù)據(jù)流則是將數(shù)據(jù)從源通過私有數(shù)據(jù)總線或是雖等DMA通過系統(tǒng)總線進行轉(zhuǎn)發(fā)而不需要使數(shù)據(jù)經(jīng)過應(yīng)用程序進程,這個過程不需要CPU操作數(shù)據(jù)。這樣在數(shù)據(jù)傳輸過程中不需要用戶線程的介入,減少了數(shù)據(jù)被拷貝的次數(shù),減少了上下文切換的開銷。
3、減低中斷的頻率(主要是針對高負荷情況的方法)。這里主要有兩種方法:批中斷和暫時關(guān)閉中斷。批中斷可以在超載時有效的抑制活鎖現(xiàn)象,但對服務(wù)器的性能沒有什么根本性的改進;當系統(tǒng)出現(xiàn)接收活鎖跡象時,可以采用暫時關(guān)閉中斷的方法來緩和系統(tǒng)的負擔,當系統(tǒng)緩存再次可用時可以再打開中斷,但這種方法在接收緩存不夠大的情況下會造成數(shù)據(jù)包丟失。
Web服務(wù)器性能是整個Web系統(tǒng)的關(guān)鍵環(huán)節(jié),提高Web服務(wù)器的性能也是人們長久以來一直關(guān)注的課題。這里通過對Web服務(wù)器的工作原理和現(xiàn)有的優(yōu)化方法和技術(shù)的分析,得出了對待Web服務(wù)器性能的提高也應(yīng)該具體問題具體分析,要在具體的應(yīng)用環(huán)境中,根據(jù)其特點來采取相應(yīng)的優(yōu)化措施。
搜索詞
熱門產(chǎn)品推薦