發(fā)表日期:2013-05-20 文章編輯:大志 瀏覽次數(shù):52 標(biāo)簽:
www.tmsmall666.cn
隨著硬件技術(shù)的飛速發(fā)展,當(dāng)前單臺(tái)PC 服務(wù)器的性能得到了顯著提升,反之,硬件成本卻在快速下降。另一方面,多數(shù)門戶網(wǎng)站、大型社區(qū)在建設(shè)WEB服務(wù)、郵件服務(wù)等網(wǎng)絡(luò)服務(wù)時(shí),仍然傾向于通過簡(jiǎn)單地?cái)U(kuò)充并行服務(wù)器數(shù)量、存儲(chǔ)子系統(tǒng)來支持用戶請(qǐng)求,而沒有考慮深入挖掘服務(wù)器本身的性能潛力!即使單臺(tái)硬件成本足夠的低廉,數(shù)量巨大的基礎(chǔ)硬件及其維護(hù)費(fèi)用對(duì)任何企業(yè)而言仍然是一項(xiàng)沉重的負(fù)擔(dān)!
如果能夠在滿足大量用戶請(qǐng)求的同時(shí),通過盡量提升服務(wù)器的整體性能,從而減少服務(wù)器的保有量,也同時(shí)減少了設(shè)備維護(hù)費(fèi)用,企業(yè)是不是可以得到更大的收益呢?答案是肯定的!
就中技看來,對(duì)于需要支持百萬(wàn)級(jí)用戶并發(fā)訪問的WEB 服務(wù)而言,確實(shí)沒有必要采用多臺(tái)服務(wù)器,單單一臺(tái)普通的PC服務(wù)器就可以勝任! 個(gè)人認(rèn)為當(dāng)前許多WEB業(yè)務(wù)應(yīng)用都是對(duì)硬件投資的極大浪費(fèi)!為什么這樣說呢?第一,當(dāng)前PC服務(wù)器多數(shù)帶多個(gè)獨(dú)立的CPU,而且每個(gè)CPU還帶多個(gè)硬核,而許多WEB應(yīng)用服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器軟件根本就沒有對(duì)多核處理器進(jìn)行支持和優(yōu)化,基本上是一個(gè)CPU在工作,其它都在休息,沒能充分發(fā)揮多CPU的能力;第二,雖然服務(wù)器安裝有高性能網(wǎng)卡,但是所采用的操作系統(tǒng)沒有對(duì)網(wǎng)絡(luò)吞吐進(jìn)行優(yōu)化,無法支持巨大的網(wǎng)絡(luò)IO請(qǐng)求,沒能發(fā)揮出高性能網(wǎng)卡的優(yōu)勢(shì);第三、服務(wù)器一般都支持4G或以上更大的內(nèi)存,而且在x86平臺(tái)下內(nèi)存條的價(jià)格就像大白菜,非常低廉。即使如此廉價(jià)豐富的內(nèi)存資源也沒有得到好好利用,多數(shù)應(yīng)用根本沒有考慮基于內(nèi)存的高速緩存方案,比如業(yè)務(wù)應(yīng)用中最常見的數(shù)據(jù)庫(kù)訪問操作,通常都是直接連接到數(shù)據(jù)庫(kù)進(jìn)行SQL操作,其處理性能上不去是顯而易見的了;第四,應(yīng)用程序本身不夠優(yōu)化。不管存在何種原因,公認(rèn)的一點(diǎn)是一個(gè)不優(yōu)化的業(yè)務(wù)應(yīng)用對(duì)系統(tǒng)整體性能表現(xiàn)有很大影響。高深的優(yōu)化技術(shù)我們不談,就舉兩個(gè)常見的優(yōu)化處理來說明,例子一,對(duì)于系統(tǒng)中保證唯一而且又不經(jīng)常變化的用戶ID,是否可以考慮不采用鏈表而采用MAP表存儲(chǔ)呢?后者比前者查詢快多了!;例子二,對(duì)于判斷一個(gè)表中是否存在某條記錄,通常使用這樣的SQL語(yǔ)句:“select * from xx_table where xx_id=xx”, 試問是否可以改成“select 1 from xx_table where xx_id=xx”?一字之差,在高頻度數(shù)據(jù)查詢過程中,后面的語(yǔ)句比前面的快很多呀。第五,一般服務(wù)器群前面都有一個(gè)或多個(gè)防火墻設(shè)備,用來進(jìn)行包過濾和端口映射。如果服務(wù)器的自身安全性很強(qiáng)的話,這些防火墻設(shè)備也是可以被省略的。
基于上述理由,某人及同事設(shè)計(jì)并實(shí)現(xiàn)了一款只需要單臺(tái)PC 服務(wù)器就可以支持百萬(wàn)級(jí)用戶并發(fā)訪問的WEB服務(wù)器(硬件采用MS-9188主板,帶兩顆Intel(R) Xeon(R) E5410 CPU,每個(gè)CPU含4個(gè)核, 8G內(nèi)存, 320G SATA 硬盤, 板載8個(gè)Intel 82571EB 千兆網(wǎng)卡,一款非常普遍的PC服務(wù)器)。
現(xiàn)就我們的工作做一簡(jiǎn)要介紹:
第一, 選用64位版本的Linux對(duì)稱多處理操作系統(tǒng),以便支持超過4G的內(nèi)存和多核心CPU。
第二,提高系統(tǒng)網(wǎng)絡(luò)IO性能。雖然Linux操作系統(tǒng)本身的網(wǎng)絡(luò)處理能力相對(duì)Windows系統(tǒng)表現(xiàn)更好,但要做到千兆級(jí)別的網(wǎng)絡(luò)吞吐還是力不從心。這一點(diǎn)可以通過Smartbits工具得到驗(yàn)證。要支持百萬(wàn)級(jí)的用戶請(qǐng)求,首先要考慮提高服務(wù)器的網(wǎng)絡(luò)吞吐能力!我們做過實(shí)驗(yàn),通過精簡(jiǎn)內(nèi)核協(xié)議棧的方法是無法達(dá)到要求的,原因很簡(jiǎn)單,網(wǎng)絡(luò)接收包和發(fā)送包的過程都必須經(jīng)歷多次內(nèi)核與用戶空間的拷貝,這嚴(yán)重占用CPU的處理時(shí)間。因此,我們?cè)O(shè)計(jì)采用“零拷貝”技術(shù),利用DMA機(jī)制和內(nèi)存映射技術(shù),實(shí)現(xiàn)網(wǎng)絡(luò)報(bào)文在內(nèi)核空間與用戶空間之間的快速傳遞,這個(gè)過程徹底解放了CPU,使得數(shù)據(jù)收發(fā)與業(yè)務(wù)處理可以并行進(jìn)行。
第三,建立用戶空間TCP/IP協(xié)議棧,建立具有多級(jí)快速搜索能力的連接追蹤池,以滿足百萬(wàn)級(jí)用戶并發(fā)訪問的要求。這是性能得以提升的關(guān)鍵所在。如果采用原始的 Linux操作系統(tǒng),單單打開百萬(wàn)個(gè)文件描述符就是個(gè)耗時(shí)的操作!我們?cè)O(shè)計(jì)僅實(shí)現(xiàn)1~7層中必要的協(xié)議處理過程,去除原內(nèi)核中冗余的協(xié)議處理過程,實(shí)行 “精兵簡(jiǎn)政”策略。整個(gè)協(xié)議處理過程采用CPU親和等手段實(shí)現(xiàn)多CPU、多核并行處理,提高多CPU的利用率。
第四,修改WEB應(yīng)用服務(wù)器軟件。設(shè)計(jì)采用開源的Apache服務(wù)器,在其基礎(chǔ)上增加了對(duì)“零拷貝”網(wǎng)絡(luò)IO的支持、用戶請(qǐng)求的多CPU并行處理支持、靜態(tài)頁(yè)面臨時(shí)文件系統(tǒng)存儲(chǔ)、內(nèi)存數(shù)據(jù)庫(kù)支持等技術(shù),充分利用“時(shí)間局部性原理和空間局部性原理”,顯著提升WEB服務(wù)器軟件的性能。
第五,提升服務(wù)器自身安全性。采用用戶態(tài)協(xié)議棧后,我們實(shí)現(xiàn)了對(duì)網(wǎng)絡(luò)報(bào)文的全面控制,自己解包自己打包,并加入對(duì)各種DDos攻擊的防御,而且有針對(duì)性地對(duì)包進(jìn)行了內(nèi)容審查,其安全過濾標(biāo)準(zhǔn)遠(yuǎn)高于單純的包過濾,完全做到了對(duì)業(yè)務(wù)內(nèi)容的過濾。這樣防火墻設(shè)備就顯得多余了,畢竟基于應(yīng)用軟件漏洞的入侵才是當(dāng)前黑客攻擊的主要手段!而在這方面,包過濾防火墻基本上無所作為,反倒是一個(gè)網(wǎng)絡(luò)瓶頸!當(dāng)然,如果防火墻作為負(fù)載均衡設(shè)備來使用又另當(dāng)別論。
第六,基于具體的業(yè)務(wù)應(yīng)用進(jìn)行優(yōu)化。我們對(duì)應(yīng)用系統(tǒng)的優(yōu)化主要從磁盤IO、數(shù)據(jù)庫(kù)訪問、業(yè)務(wù)算法等方面進(jìn)行。一個(gè)精心優(yōu)化的業(yè)務(wù)系統(tǒng),其性能也會(huì)得到顯著提高。
由于我們采用了上述步驟,我們最終實(shí)現(xiàn)了利用一臺(tái)PC 服務(wù)器支持百萬(wàn)WEB用戶并行訪問的要求。綜合來看,我們?cè)O(shè)計(jì)的思路主要是盡量提升系統(tǒng)潛能,通過采取多核并發(fā)、網(wǎng)絡(luò)吞吐優(yōu)化、業(yè)務(wù)系統(tǒng)優(yōu)化等手段,多管齊下來提升系統(tǒng)的整體性能,以求做到用好設(shè)備、用精設(shè)備的理念,最終達(dá)到在滿足用戶需求的前提下,減少設(shè)備投入,節(jié)約成本的目的。
重慶中技互聯(lián)網(wǎng)信息咨詢有限公司 www.tmsmall666.cn
企業(yè)網(wǎng)站建設(shè)解決方案 營(yíng)銷型網(wǎng)站建設(shè)解決方案 行業(yè)門戶網(wǎng)站建設(shè)解決方案 外貿(mào)網(wǎng)站解建設(shè)決方案 品牌形象網(wǎng)站建設(shè)解決方案 購(gòu)物商城網(wǎng)站建設(shè)解決方案 政府網(wǎng)站建設(shè)解決方案 手機(jī)網(wǎng)站建設(shè)解決方案 教育培訓(xùn)網(wǎng)站建設(shè)解決方案 珠寶高端奢飾品網(wǎng)站建設(shè)解決方案 房地產(chǎn)、地產(chǎn)項(xiàng)目網(wǎng)站建設(shè)解決方案 集團(tuán)、上市企業(yè)網(wǎng)站建設(shè)解決方案 數(shù)碼、電子產(chǎn)品網(wǎng)站建設(shè)解決方案 美容、化妝品行業(yè)網(wǎng)站建設(shè)解決方案
10年專業(yè)互聯(lián)網(wǎng)服務(wù)經(jīng)驗(yàn) 重慶最專業(yè)網(wǎng)站團(tuán)隊(duì) 資深行業(yè)分析策劃 B2C營(yíng)銷型網(wǎng)站建設(shè)領(lǐng)先者 最前沿視覺設(shè)計(jì)、研發(fā)能力 時(shí)刻最新技術(shù)領(lǐng)先研發(fā)能力 具有完備的項(xiàng)目管理 完善的售后服務(wù)體系 深厚的網(wǎng)絡(luò)運(yùn)營(yíng)經(jīng)驗(yàn)
中技互聯(lián)一直秉承專業(yè)、誠(chéng)信、服務(wù)、進(jìn)取的價(jià)值觀,堅(jiān)持優(yōu)秀的商業(yè)道德,以用戶最終價(jià)值為導(dǎo)向,向用戶提供優(yōu)質(zhì)產(chǎn)品和優(yōu)質(zhì)服務(wù),從而贏得了用戶的信賴。始終以不懈的努力、更高的目標(biāo)來要求自己。
主營(yíng)業(yè)務(wù):網(wǎng)站建設(shè) | 重慶網(wǎng)站建設(shè) | 重慶網(wǎng)站設(shè)計(jì) | 重慶網(wǎng)站制作 | 重慶網(wǎng)頁(yè)設(shè)計(jì) | 重慶網(wǎng)站開發(fā)