亚洲一区二区三区成人A片在线_色老久久精品偷偷鲁_做爰高潮A片免费视频一_99pao在线视频国产

咨詢電話:023-88959644    24小時服務熱線:400-023-8809
NEWS CENTER ·
新聞動態(tài)
關注中技互聯(lián) 關注前沿

如何實現(xiàn)單臺服務器并發(fā)百萬級配置

發(fā)表日期:2013-05-20    文章編輯:大志    瀏覽次數:52    標簽:

www.aorustv.com

   隨著硬件技術的飛速發(fā)展,當前單臺PC 服務器的性能得到了顯著提升,反之,硬件成本卻在快速下降。另一方面,多數門戶網站、大型社區(qū)在建設WEB服務、郵件服務等網絡服務時,仍然傾向于通過簡單地擴充并行服務器數量、存儲子系統(tǒng)來支持用戶請求,而沒有考慮深入挖掘服務器本身的性能潛力!即使單臺硬件成本足夠的低廉,數量巨大的基礎硬件及其維護費用對任何企業(yè)而言仍然是一項沉重的負擔!

  如果能夠在滿足大量用戶請求的同時,通過盡量提升服務器的整體性能,從而減少服務器的保有量,也同時減少了設備維護費用,企業(yè)是不是可以得到更大的收益呢?答案是肯定的!

  就中技看來,對于需要支持百萬級用戶并發(fā)訪問的WEB 服務而言,確實沒有必要采用多臺服務器,單單一臺普通的PC服務器就可以勝任! 個人認為當前許多WEB業(yè)務應用都是對硬件投資的極大浪費!為什么這樣說呢?第一,當前PC服務器多數帶多個獨立的CPU,而且每個CPU還帶多個硬核,而許多WEB應用服務器、數據庫服務器軟件根本就沒有對多核處理器進行支持和優(yōu)化,基本上是一個CPU在工作,其它都在休息,沒能充分發(fā)揮多CPU的能力;第二,雖然服務器安裝有高性能網卡,但是所采用的操作系統(tǒng)沒有對網絡吞吐進行優(yōu)化,無法支持巨大的網絡IO請求,沒能發(fā)揮出高性能網卡的優(yōu)勢;第三、服務器一般都支持4G或以上更大的內存,而且在x86平臺下內存條的價格就像大白菜,非常低廉。即使如此廉價豐富的內存資源也沒有得到好好利用,多數應用根本沒有考慮基于內存的高速緩存方案,比如業(yè)務應用中最常見的數據庫訪問操作,通常都是直接連接到數據庫進行SQL操作,其處理性能上不去是顯而易見的了;第四,應用程序本身不夠優(yōu)化。不管存在何種原因,公認的一點是一個不優(yōu)化的業(yè)務應用對系統(tǒng)整體性能表現(xiàn)有很大影響。高深的優(yōu)化技術我們不談,就舉兩個常見的優(yōu)化處理來說明,例子一,對于系統(tǒng)中保證唯一而且又不經常變化的用戶ID,是否可以考慮不采用鏈表而采用MAP表存儲呢?后者比前者查詢快多了!;例子二,對于判斷一個表中是否存在某條記錄,通常使用這樣的SQL語句:“select * from xx_table where xx_id=xx”, 試問是否可以改成“select 1 from xx_table where xx_id=xx”?一字之差,在高頻度數據查詢過程中,后面的語句比前面的快很多呀。第五,一般服務器群前面都有一個或多個防火墻設備,用來進行包過濾和端口映射。如果服務器的自身安全性很強的話,這些防火墻設備也是可以被省略的。

  基于上述理由,某人及同事設計并實現(xiàn)了一款只需要單臺PC 服務器就可以支持百萬級用戶并發(fā)訪問的WEB服務器(硬件采用MS-9188主板,帶兩顆Intel(R) Xeon(R) E5410 CPU,每個CPU含4個核, 8G內存, 320G SATA 硬盤, 板載8個Intel 82571EB 千兆網卡,一款非常普遍的PC服務器)。

  現(xiàn)就我們的工作做一簡要介紹:

  第一, 選用64位版本的Linux對稱多處理操作系統(tǒng),以便支持超過4G的內存和多核心CPU。

  第二,提高系統(tǒng)網絡IO性能。雖然Linux操作系統(tǒng)本身的網絡處理能力相對Windows系統(tǒng)表現(xiàn)更好,但要做到千兆級別的網絡吞吐還是力不從心。這一點可以通過Smartbits工具得到驗證。要支持百萬級的用戶請求,首先要考慮提高服務器的網絡吞吐能力!我們做過實驗,通過精簡內核協(xié)議棧的方法是無法達到要求的,原因很簡單,網絡接收包和發(fā)送包的過程都必須經歷多次內核與用戶空間的拷貝,這嚴重占用CPU的處理時間。因此,我們設計采用“零拷貝”技術,利用DMA機制和內存映射技術,實現(xiàn)網絡報文在內核空間與用戶空間之間的快速傳遞,這個過程徹底解放了CPU,使得數據收發(fā)與業(yè)務處理可以并行進行。

  第三,建立用戶空間TCP/IP協(xié)議棧,建立具有多級快速搜索能力的連接追蹤池,以滿足百萬級用戶并發(fā)訪問的要求。這是性能得以提升的關鍵所在。如果采用原始的 Linux操作系統(tǒng),單單打開百萬個文件描述符就是個耗時的操作!我們設計僅實現(xiàn)1~7層中必要的協(xié)議處理過程,去除原內核中冗余的協(xié)議處理過程,實行 “精兵簡政”策略。整個協(xié)議處理過程采用CPU親和等手段實現(xiàn)多CPU、多核并行處理,提高多CPU的利用率。

  第四,修改WEB應用服務器軟件。設計采用開源的Apache服務器,在其基礎上增加了對“零拷貝”網絡IO的支持、用戶請求的多CPU并行處理支持、靜態(tài)頁面臨時文件系統(tǒng)存儲、內存數據庫支持等技術,充分利用“時間局部性原理和空間局部性原理”,顯著提升WEB服務器軟件的性能。

  第五,提升服務器自身安全性。采用用戶態(tài)協(xié)議棧后,我們實現(xiàn)了對網絡報文的全面控制,自己解包自己打包,并加入對各種DDos攻擊的防御,而且有針對性地對包進行了內容審查,其安全過濾標準遠高于單純的包過濾,完全做到了對業(yè)務內容的過濾。這樣防火墻設備就顯得多余了,畢竟基于應用軟件漏洞的入侵才是當前黑客攻擊的主要手段!而在這方面,包過濾防火墻基本上無所作為,反倒是一個網絡瓶頸!當然,如果防火墻作為負載均衡設備來使用又另當別論。

  第六,基于具體的業(yè)務應用進行優(yōu)化。我們對應用系統(tǒng)的優(yōu)化主要從磁盤IO、數據庫訪問、業(yè)務算法等方面進行。一個精心優(yōu)化的業(yè)務系統(tǒng),其性能也會得到顯著提高。

  由于我們采用了上述步驟,我們最終實現(xiàn)了利用一臺PC 服務器支持百萬WEB用戶并行訪問的要求。綜合來看,我們設計的思路主要是盡量提升系統(tǒng)潛能,通過采取多核并發(fā)、網絡吞吐優(yōu)化、業(yè)務系統(tǒng)優(yōu)化等手段,多管齊下來提升系統(tǒng)的整體性能,以求做到用好設備、用精設備的理念,最終達到在滿足用戶需求的前提下,減少設備投入,節(jié)約成本的目的。

重慶中技互聯(lián)網信息咨詢有限公司 www.aorustv.com

如沒特殊注明,文章均為中技互聯(lián)原創(chuàng),轉載請注明來自www.aorustv.com
相關新聞

CopyrightZJCOO technology Co., LTD. All Rights Reserved.    

渝ICP 備11003429號

  • qq客服
  • 公眾號
  • 手機版
  • 新浪微博