成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

單臺服務器并發百萬級配置

運維 服務器運維
本文主要介紹利用單臺PC服務器來實現可支持百萬級用戶并發訪問的WEB服務器的實踐工作。意在提出一些手段來發掘設備的潛力,充分利用設備資源,以求達到降低硬件投入成本和維護成本的目的。

摘要:本文主要介紹利用單臺PC服務器來實現可支持百萬級用戶并發訪問的WEB服務器的實踐工作。意在提出一些手段來發掘設備的潛力,充分利用設備資源,以求達到降低硬件投入成本和維護成本的目的。

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

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

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

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

現就我們的工作做一簡要介紹:

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

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

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

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

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

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

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

責任編輯:張玉 來源: 新浪博客
相關推薦

2013-07-30 10:19:18

微軟服務器史蒂夫·鮑爾默

2012-11-02 09:44:07

戴爾服務器數據中心

2021-01-18 05:15:30

存儲容量服務器

2013-07-22 09:39:30

微軟數據中心Google

2017-01-09 16:06:19

2023-12-06 07:22:36

2016-06-20 15:36:01

OpenManage大

2010-11-12 10:01:21

2016-07-12 10:40:35

服務器

2009-10-15 15:33:53

服務器集群

2009-04-03 09:19:04

谷歌服務器數據中心

2009-12-01 13:25:24

服務器并發

2016-05-19 13:20:42

彈性伸縮自動擴容騰訊云

2009-03-12 09:44:05

高并發開源數據庫MySQL

2016-08-16 15:21:19

服務器

2017-04-24 16:10:19

戴爾

2009-03-25 18:57:14

四核Intel服務器

2020-07-31 11:20:55

阿里云數據中心服務器

2013-01-22 13:23:01

2024-03-12 08:11:27

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久大陆 | 91精品国产一区二区三区 | 在线 丝袜 欧美 日韩 制服 | 国产成人精品一区二区三区网站观看 | 天色综合网 | 欧美日韩一区二区在线观看 | 国产精品久久久久久久久久久新郎 | 欧美xxxx黑人又粗又长 | 韩国精品一区二区三区 | 日韩久久久久久 | 蜜桃av人人夜夜澡人人爽 | 91精品国产麻豆 | 一区二区三区免费 | 精品国产乱码久久久久久蜜柚 | 久久精品国产亚洲一区二区 | 女朋友的闺蜜3韩国三级 | 亚洲欧美中文字幕 | 在线欧美一区 | 国产精品综合久久 | 久久亚洲精品视频 | 91国在线视频 | 81精品国产乱码久久久久久 | 精品毛片 | 久久久青草婷婷精品综合日韩 | 中文字幕在线观看视频网站 | 久久久久一区 | 亚洲国产精品久久久久婷婷老年 | 成人精品一区二区三区 | 日本在线播放 | 欧美久久久久久 | 亚洲成人三区 | 久久久久久毛片免费观看 | 九九久久免费视频 | 欧美精品一区二区三区视频 | 中文字幕免费在线 | 国产在线一区二 | 欧美日本韩国一区二区三区 | 亚洲三级在线观看 | 日本羞羞影院 | 亚洲综合视频 | 伊人伊人网 |