簡(jiǎn)述:Web服務(wù)器性能是整個(gè)Web系統(tǒng)的關(guān)鍵環(huán)節(jié),提高Web服務(wù)器的性能也是長(zhǎng)久以來(lái)人們一直關(guān)注的課題。這里通過(guò)對(duì)Web服務(wù)器的工作原理和現(xiàn)有的優(yōu)化方法和技術(shù)的分析,得出了對(duì)待Web服務(wù)器性能的提高也應(yīng)該具
Web服務(wù)器性能是整個(gè)Web系統(tǒng)的關(guān)鍵環(huán)節(jié),提高Web服務(wù)器的性能也是長(zhǎng)久以來(lái)人們一直關(guān)注的課題。這里通過(guò)對(duì)Web服務(wù)器的工作原理和現(xiàn)有的優(yōu)化方法和技術(shù)的分析,得出了對(duì)待Web服務(wù)器性能的提高也應(yīng)該具體問(wèn)題具體分析,要在具體的應(yīng)用環(huán)境中,根據(jù)其特點(diǎn)來(lái)采取相應(yīng)的優(yōu)化措施?! ?/P>
在對(duì)Web服務(wù)器進(jìn)行優(yōu)化時(shí)要根據(jù)真實(shí)的Web應(yīng)用系統(tǒng)的情況和特征來(lái)采取有針對(duì)性地優(yōu)化方案。首先根據(jù)不同的網(wǎng)絡(luò)特性來(lái)看:在局域網(wǎng)中,降低M T U (最大傳輸單位)值對(duì)可以避免復(fù)制數(shù)據(jù)和求校驗(yàn),而通過(guò)優(yōu)化select系統(tǒng)調(diào)用或在Socket事件處理器中執(zhí)行計(jì)算可以優(yōu)化請(qǐng)求并發(fā)管理,利用HTTP1.1持續(xù)連接等都可以使系統(tǒng)性能得到相應(yīng)的改善,但在廣域網(wǎng)的環(huán)境下卻沒(méi)有什么大的作用,有的甚至恰恰相反。
關(guān)于Web負(fù)載,除了對(duì)Web負(fù)載的特征進(jìn)行分析以便在評(píng)測(cè)時(shí)更好地再現(xiàn)真實(shí)負(fù)載之外,還要考慮Web服務(wù)器所在的網(wǎng)絡(luò)環(huán)境下負(fù)載的情況。人們不僅要求服務(wù)器滿足正常的工作負(fù)載要求,而且在高峰時(shí)期依然要保持較高的吞吐量。但是,服務(wù)器在高負(fù)載的情況下的性能表現(xiàn)往往低于人們的期望。
服務(wù)器過(guò)載的情況分為兩種:一種為瞬間過(guò)載,即服務(wù)器暫時(shí)的、短時(shí)間的超載,這種情況主要是由服務(wù)器負(fù)載的特點(diǎn)引起的。大量的研究表明,Web請(qǐng)求的網(wǎng)絡(luò)通信量分布是自相似的,即Web請(qǐng)求的通信量可以在很大范圍內(nèi)有顯著的變化。這就造成服務(wù)器常常短時(shí)間的超載,但這樣情況持續(xù)的時(shí)間一般很短。一種是服務(wù)器長(zhǎng)時(shí)間的超載,這種情況一般是由某一特殊事件引起的,例如服務(wù)器受到拒絕服務(wù)攻擊或者發(fā)生了“活鎖”現(xiàn)象。
第一種服務(wù)器超載情況是不可避免的,但第二種情況則可以通過(guò)對(duì)服務(wù)器改進(jìn)來(lái)改善。拋開(kāi)惡意的攻擊不算,仔細(xì)分析服務(wù)器處理信息包的過(guò)程可以發(fā)現(xiàn),造成系統(tǒng)在超載情況下性能下降的根本原因是高優(yōu)先級(jí)處理階段對(duì)CPU的不公平搶占。
因此,如果限制高優(yōu)先級(jí)處理階段對(duì)CPU的占用率,或者限制處理高優(yōu)先級(jí)的CPU個(gè)數(shù),都可以減輕或者消除收包活鎖現(xiàn)象。具體的可以采用以下方法:
1.采用輪詢機(jī)制。為了減少中斷對(duì)系統(tǒng)性能的影響,在負(fù)載正常的情況下采用“下半處理” 的方法就非常有效,而在高負(fù)荷情況下,采用這個(gè)方法仍然會(huì)造成活鎖現(xiàn)象,這時(shí)可以采用輪詢機(jī)制。
2.減少上下文切換。這種方法不管服務(wù)器在什么情況下對(duì)性能改善都很有效,這時(shí)可以采用引入核心級(jí)或硬件級(jí)數(shù)據(jù)流的方法來(lái)達(dá)到這個(gè)目的。核心級(jí)數(shù)據(jù)流是將數(shù)據(jù)從源通過(guò)系統(tǒng)總線進(jìn)行轉(zhuǎn)發(fā)而不需要使數(shù)據(jù)經(jīng)過(guò)應(yīng)用程序進(jìn)程,這個(gè)過(guò)程中因?yàn)閿?shù)據(jù)在內(nèi)存中,因此需要CPU操作數(shù)據(jù)。
硬件級(jí)數(shù)據(jù)流則是將數(shù)據(jù)從源通過(guò)私有數(shù)據(jù)總線或是雖等DMA通過(guò)系統(tǒng)總線進(jìn)行轉(zhuǎn)發(fā)而不需要使數(shù)據(jù)經(jīng)過(guò)應(yīng)用程序進(jìn)程,這個(gè)過(guò)程不需要CPU操作數(shù)據(jù)。這樣在數(shù)據(jù)傳輸過(guò)程中不需要用戶線程的介入,減少了數(shù)據(jù)被拷貝的次數(shù),減少了上下文切換的開(kāi)銷。
3.減低中斷的頻率。這里主要有兩種方法:批中斷和暫時(shí)關(guān)閉中斷。批中斷可以在超載時(shí)有效的抑制活鎖現(xiàn)象,但對(duì)服務(wù)器的性能沒(méi)有什么根本性的改進(jìn);當(dāng)系統(tǒng)出現(xiàn)接收活鎖跡象時(shí),可以采用暫時(shí)關(guān)閉中斷的方法來(lái)緩和系統(tǒng)的負(fù)擔(dān),當(dāng)系統(tǒng)緩存再次可用時(shí)可以再打開(kāi)中斷,但這種方法在接收緩存不夠大的情況下會(huì)造成數(shù)據(jù)包丟失。
本文由專業(yè)服務(wù)器租用——騰佑科技(http://m.mubashirfilms.com)提供。
鄭州騰佑科技有限公司(以下簡(jiǎn)稱“騰佑科技”)成立于2009年, 總部位于鄭州,是 一家致力于互聯(lián)網(wǎng)服務(wù)業(yè)的高新技術(shù)企業(yè),公司主營(yíng)業(yè)務(wù)以互聯(lián)網(wǎng)數(shù)據(jù)中心、云計(jì)算、人 工智能、軟件開(kāi)發(fā)、安全服務(wù)“互聯(lián)網(wǎng)+”行業(yè)解決方案及行業(yè)應(yīng)用等相關(guān)業(yè)務(wù)。
售前咨詢熱線:400-996-8756
備案提交:0371-89913068
售后客服:0371-89913000
搜索詞
熱門產(chǎn)品推薦