怎樣提升高并發(fā)量服務(wù)器的性能?
那么,有什么方法衡量服務(wù)器并發(fā)處理能力呢?
其一,吞吐率。單位時(shí)間里服務(wù)器處理的最大請求數(shù),單位req/s。從服務(wù)器角度,實(shí)際并發(fā)用戶數(shù)的可以理解為服務(wù)器當(dāng)前維護(hù)的代表不同用戶的文件描述符總數(shù),也就是并發(fā)連接數(shù)。服務(wù)器一般會(huì)限制同時(shí)服務(wù)的最多用戶數(shù),比如apache的MaxClents參數(shù)。
其二,壓力測試。有一個(gè)原理一定要先搞清楚,假如100個(gè)用戶同時(shí)向服務(wù)器分別進(jìn)行10個(gè)請求,與1個(gè)用戶向服務(wù)器連續(xù)進(jìn)行1000次請求,對服務(wù)器的壓力是一樣嗎?實(shí)際上是不一樣的,因?qū)γ恳粋€(gè)用戶,連續(xù)發(fā)送請求實(shí)際上是指發(fā)送一個(gè)請求并接收到響應(yīng)數(shù)據(jù)后再發(fā)送下一個(gè)請求。
了解了以上知識(shí)后,我們一起來看看:怎么提高服務(wù)器的并發(fā)處理能力?
1、HTML靜態(tài)化
其實(shí)大家都知道,效率最高、消耗最小的就是純靜態(tài)化的html頁面,所以我們盡可能使我們的網(wǎng)站上的頁面采用靜態(tài)頁面來實(shí)現(xiàn),這個(gè)最簡單的方法其實(shí)也是最有效的方法。但是對于大量內(nèi)容并且頻繁更新的網(wǎng)站,我們無法全部手動(dòng)去挨個(gè)實(shí)現(xiàn),于是出現(xiàn)了我們常見的信息發(fā)布系統(tǒng)CMS,像我們常訪問的各個(gè)門戶站點(diǎn)的新聞?lì)l道,甚至他們的其他頻道,都是通過信息發(fā)布系統(tǒng)來管理和實(shí)現(xiàn)的,信息發(fā)布系統(tǒng)可以實(shí)現(xiàn)最簡單的信息錄入自動(dòng)生成靜態(tài)頁面,還能具備頻道管理、權(quán)限管理、自動(dòng)抓取等功能,對于一個(gè)大型網(wǎng)站來說,擁有一套高效、可管理的CMS是必不可少的。
除了門戶和信息發(fā)布類型的網(wǎng)站,對于交互性要求很高的社區(qū)類型網(wǎng)站來說,盡可能的靜態(tài)化也是提高性能的必要手段,將社區(qū)內(nèi)的帖子、文章進(jìn)行實(shí)時(shí)的靜態(tài)化、有更新的時(shí)候再重新靜態(tài)化也是大量使用的策略,像Mop的大雜燴就是使用了這樣的策略,網(wǎng)易社區(qū)等也是如此。
2、圖片服務(wù)器分離
大家知道,對于Web服務(wù)器來說,不管是Apache、IIS還是其他容器,圖片是最消耗資源的,于是我們有必要將圖片與頁面進(jìn)行分離,這是基本上大型網(wǎng)站都會(huì)采用的策略,他們都有獨(dú)立的、甚至很多臺(tái)的圖片服務(wù)器。這樣的架構(gòu)可以降低提供頁面訪問請求的服務(wù)器系統(tǒng)壓力,并且可以保證系統(tǒng)不會(huì)因?yàn)閳D片問題而崩潰。
在應(yīng)用服務(wù)器和圖片服務(wù)器上,可以進(jìn)行不同的配置優(yōu)化,比如apache在配置ContentType的時(shí)候可以盡量少支持、盡可能少的LoadModule,保證更高的系統(tǒng)消耗和執(zhí)行效率。
3、數(shù)據(jù)庫集群、庫表散列
大型網(wǎng)站都有復(fù)雜的應(yīng)用,這些應(yīng)用必須使用數(shù)據(jù)庫,那么在面對大量訪問的時(shí)候,數(shù)據(jù)庫的瓶頸很快就能顯現(xiàn)出來,這時(shí)一臺(tái)數(shù)據(jù)庫將很快無法滿足應(yīng)用,于是我們需要使用數(shù)據(jù)庫集群或者庫表散列。
在數(shù)據(jù)庫集群方面,很多數(shù)據(jù)庫都有自己的解決方案,Oracle、Sybase等都有很好的方案,常用的MySQL提供的Master/Slave也是類似的方案,您使用了什么樣的DB,就參考相應(yīng)的解決方案來實(shí)施即可。
4、考慮減少內(nèi)存分配和釋放
服務(wù)器的工作過程中,需要大量的內(nèi)存,使得內(nèi)存的分配和釋放工作尤為重要??梢酝ㄟ^改善數(shù)據(jù)結(jié)構(gòu)和算法復(fù)制度來適當(dāng)減少中間臨時(shí)變量的內(nèi)存分配及數(shù)據(jù)復(fù)制時(shí)間,而服務(wù)器本身也使用了各自的策略來提高效率。
另外,還可以考慮共享內(nèi)存。共享內(nèi)存指在多處理器的計(jì)算機(jī)系統(tǒng)中,可以被不同中央處理器(CPU)訪問的大容量內(nèi)存,也可以由不同進(jìn)程共享,是非常快的進(jìn)程通信方式。
但是使用共享內(nèi)存也有不好的地方,就是對于多機(jī)器時(shí)數(shù)據(jù)不好統(tǒng)一。
shell命令ipcs可用來顯示系統(tǒng)下共享內(nèi)存的狀態(tài),函數(shù)shmget可以創(chuàng)建或打開一塊共享內(nèi)存區(qū),函數(shù)shmat將一個(gè)存在的共享內(nèi)存段連接到本進(jìn)程空間, 函數(shù)shmctl可以對共享內(nèi)存段進(jìn)行多種操作,函數(shù)shmdt函數(shù)分離該共享內(nèi)存。
5、鏡像
鏡像是大型網(wǎng)站常采用的提高性能和數(shù)據(jù)安全性的方式,鏡像的技術(shù)可以解決不同網(wǎng)絡(luò)接入商和地域帶來的用戶訪問速度差異,比如ChinaNet和EduNet之間的差異就促使了很多網(wǎng)站在教育網(wǎng)內(nèi)搭建鏡像站點(diǎn),數(shù)據(jù)進(jìn)行定時(shí)更新或者實(shí)時(shí)更新。
6、負(fù)載均衡
負(fù)載均衡將是大型網(wǎng)站解決高負(fù)荷訪問和大量并發(fā)請求采用的高端解決辦法。
負(fù)載均衡是將訪問流量分發(fā)到多種云服務(wù)器上的在線服務(wù),從而提高業(yè)務(wù)的服務(wù)能力和可用性。 負(fù)載均衡服務(wù)支持四層和七層會(huì)話保持技術(shù),可以通過多種負(fù)載算法將請求轉(zhuǎn)發(fā)到不同云服務(wù)器上, 在后端云服務(wù)器宕機(jī)時(shí),會(huì)自動(dòng)將對應(yīng)節(jié)點(diǎn)從負(fù)載均衡的轉(zhuǎn)發(fā)列表中移出,保證服務(wù)的高可用。
新網(wǎng)云負(fù)載平衡具有雙機(jī)架構(gòu),定時(shí)對后端服務(wù)進(jìn)行健康檢查,自動(dòng)屏蔽異常實(shí)例,保障業(yè)務(wù)連續(xù)性;主從雙機(jī)數(shù)據(jù)同步,避免單臺(tái)機(jī)器故障引發(fā)的數(shù)據(jù)丟失,保障數(shù)據(jù)安全;分鐘級部署,控制臺(tái)簡潔易用,僅需幾步就可完成變配續(xù)費(fèi),實(shí)現(xiàn)靈活選擇和輕松管理。更低的產(chǎn)品價(jià)格保障高性價(jià)比,多達(dá)6種型號(hào)供您選擇,匹配不同的業(yè)務(wù)情景,是千萬企業(yè)提高服務(wù)器并發(fā)性能的不二選擇:http://www.xinnet.com/cs/slb.html
聲明:免責(zé)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認(rèn)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請發(fā)
送郵件至:operations@xinnet.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)
需注明出處:新網(wǎng)idc知識(shí)百科