咱們拋開 租用服務器仍是自行購買服務器進行託管的問題,在這篇文章裏,咱們討論的是不管租用或託管都要面臨的一個問題,那就是選擇服務器的硬件配置。由於上帝不會給你一臺服務器來知足全部需求,解決全部的問題。尤爲是咱們身處在這樣一個飛速變化的時代,當你還在爲最新款最強勁的CPU乍舌不已的時候,Intel、AMD卻已經在密謀下一次洗劫你錢包的時機了,其實,他們早已經將將來10年的CPU演進道路設計穩當,布好一個又一個的坑在等着你跳進去,簡直就像陰謀通常。沒錯,這一切就是陰謀!
不成功的服務器選擇會給企業帶來不少運營問題:若是不經認真仔細的評估,輕率的選擇一臺性能超級強勁讓你高枕無憂但價格昂貴的服務器,毫無疑問會帶來成本上的極大浪費;但若是一味爲了省錢,而選擇一臺很容易成爲計算瓶頸,或沒有充分考慮冗餘措施的服務器,就會極大影響業務的運行,客戶投訴網站速度超慢,硬盤出現故障致使數據丟失,由於這些,你今後沒有了美好的睡眠,每日提心吊膽,更要命的是,公司所以丟失了幾十萬元的訂單。
你須要從不一樣的角度來決定選擇一臺什麼樣的服務器,找到知足技術須要、業務發展和成本控制之間的最佳平衡點,爲了作到這一點,絕對仍是須要一點智慧。51IDC將在下面爲你們介紹一些易於理解,儘量全面的建議,並幫助你作出決定。
先不要急於決定須要怎樣的CPU,幾個硬盤,幾個G內存,須要多少兆帶寬這樣的問題,那些是咱們最後須要獲得的答案。在這以前,先一塊兒梳理幾個問題。在下面,咱們列出了一些「多少」或「什麼樣」的問題,拿起你的筆或在Windows記事本里新建一個文件,嘗試根據下面四個問題來評估本身的需求:
服務器運行什麼應用?
須要支持多少用戶訪問?
須要多大空間來存儲數據?
個人業務有多重要?
1 服務器運行什麼應用?這是首先須要考慮的問題,在這裏你要根據服務器的應用類型,也就是用途,來決定服務器的性能、容量和可靠性需求。咱們按照前端服務器+應用程序服務器+數據服務器的常見基礎架構來討論:
1.1 Web前端:正常狀況下,咱們認爲大多數Web前端服務器(Front-end)對服務器的要求不大,例如靜態Web服務器、動態Web服務器、圖片服務器等等,由於在現有的技術框架中,咱們有不少方案能夠解決前端服務器的性能擴展和可靠性問題,例如LVS、Nginx反向代理、硬件負載均衡(F5,A10,Radware)等。甚至在不少訪問量不高(幾百個用戶同時在線)的應用中,51IDC的經典酷睿服務器就能夠知足需求。
1.2應用服務器:因爲承擔了計算和功能實現,咱們須要爲基於Web架構的應用程序服務器(Application Server)選擇足夠快的服務器,另外應用程序服務器可能須要用大量的內存,尤爲是基於Windows基礎架構的Ruby,Python,Java服務器。這一類服務器至少須要使用單路至強的配置。對於可靠性的問題,若是你的架構中只有一臺應用服務器,那確定須要這臺服務器足夠可靠,RAID絕對是不能忽視的選項。但若是有兩臺或更多的應用服務器,並設計了負載均衡機制,具備冗餘功能,那咱們則沒必要將每臺服務器武裝到底。
1.3 特殊的應用:除了做爲Web架構中的應用程序服務器以外,若是你的服務器是用來處理流媒體視頻編碼、服務器虛擬化、媒體服務器(Asterisk之類),或者做爲遊戲服務器(邏輯、地圖、聊天)運行,則一樣對CPU和內存需求比較高,咱們至少要考慮單路至強的服務器。其中服務器虛擬化對存儲的可靠性的要求都很是高,由於一個籃子裏有十幾個雞蛋,籃子必定要足夠牢靠纔是。
1.4公共服務:咱們指的是郵件服務器、文件服務器、DNS服務器、域控服務器這類服務器。一般狀況咱們會部署兩臺DNS服務器做爲互相備份,域控主服務器也會擁有一臺備份服務器(專用的或非專用的),因此對於可靠性,無需達到苛刻的地步。至於郵件服務器,至少須要具有足夠的硬件可靠性和容量大小,這主要是爲了對郵件數據負責,由於不少用戶沒有保存和歸檔郵件數據的習慣,當他們重裝系統後,總會依賴從新下載服務器上的數據。至於性能問題,咱們認爲須要評估用戶數量才能決定。
1.5數據庫:咱們最後討論的應用,也是要求最高,最重要的服務器。不管你使用的是MySQL、SQLServer仍是Oralce,通常狀況下,咱們認爲它須要足夠快的CPU,足夠大的內存,足夠穩定可靠的硬件。單路至強CPU/4GB內存/Raid1絕對是入門配置。關於準確的配置咱們須要再討論業務需求後才能做決定。
2 服務器須要支持多少用戶訪問?服務器確定是爲了提供某種服務,而使用這些服務的用戶一樣是咱們必須考慮的因素,有幾個具體的問題你須要作出評估:
有多少註冊用戶?正常狀況下有多少用戶會同時在線訪問?天天同時在線訪問的最高峯值大概是多少?
這些問題,對咱們決定採用什麼樣的CPU,多大的內存有着相當重要的影響。51IDC建議你的技術人員和業務部門坐在一塊兒來討論這幾個問題,最後甚至須要按照特定的技術模型和算法,將這些數字轉化爲一些更具體的技術數字,例如併發多少個鏈接(不少時候,用戶數與鏈接數不是一個概念)。同時,你還要對將來的用戶增加作一個儘量準確的預測和規劃,你的服務器須要支持愈來愈多的用戶。
3須要多大空間來存儲數據?咱們須要從兩個角度來計算這個問題,一個角度是有哪些類別的數據,包括:操做系統自己佔用的空間、安裝應用程序所須要的空間、應用程序所產生的數據、數據庫、日誌文件、郵件數據等等,若是是Web2.0類的網站,你還要計算每一個用戶的存儲空間;另外一個角度是從時間軸來考慮,這些數據天天都在增加,你至少要爲將來1年(咱們建議2~3年)的數據增加作個準確的測算,這可能仍然須要你的軟件開發人員和業務人員一塊兒提供足夠的信息。最後你仍然須要爲計算出來的數字結果乘1.5左右的係數,方便維護的時候作各類數據備份和文件轉移操做。
4個人業務有多重要:你須要根據自身的業務領域,來遵循一些要求,咱們在下面舉幾個簡單的例子,幫助你理解這些服務器對可靠性、數據完整性等方面的要求:
4.1 若是你的服務器用來運行一個WordPress博客,與朋友們分享觀點。那麼我相信,一臺酷睿服務器,1G內存外加一塊160GB的硬盤就足夠了。就算服務器出現了一點硬件故障,致使幾個小時甚至一兩天不能提供訪問,生活會照常繼續,天也不會塌下來。
4.2 若是你的服務器用來做爲測試平臺,那麼就不會如生產環境那樣,對可靠性有極高的要求,你所須要的可能只是作好例行的數據備份,服務器宕機後,能有我的在今天把問題解決掉就OK了
4.3若是你是一個電子商務公司,服務器正在運行電子商務網站平臺,那麼請必定要像重視女友同樣重視服務器,當硬件發生故障而致使宕機,你須要對如下危言聳聽的後果作好心理準備:投訴電話被打爆、顧客大量流失、顧客要求退款、市場推廣費用打水漂、員工無事可幹,公司運營陷入癱瘓、數據丟失(這是最痛苦最災難的結果,咱們經歷了太多這樣的案例,它甚至會致使一個公司就此消亡)
在這裏,咱們其實只須要簡單討論你的業務對服務器硬件可靠性的要求。換言之,若是你以爲業務不能承擔硬盤損壞帶來的停機或數據丟失風險,那麼必定要選擇一個合適的Raid卡,對於冗餘電源問題,道理同樣。(全面解決這個問題,不單考慮單個服務器的硬件,還須要結合系統架構的規劃設計和運維管理來分析,這部分咱們將單獨撰寫文章來討論。)
在完成以上問題後,咱們接下來就能夠決定這些具體選項:
選擇什麼CPU?
回憶一下上面」服務器運行什麼應用?「和 「須要支持多少用戶訪問?」兩個問題的答案,這將幫助咱們來選擇合適的CPU。毫無疑問,CPU的主頻越高,其性能也更高;兩個CPU要比一個CPU來得更爽,至強確定比酷睿更生猛。但咱們究竟須要選擇怎樣的CPU?咱們在這裏爲你提供一些常見狀況下的建議:
1 若是你的業務剛剛起步,預算不是很充足,建議你選擇一款經典酷睿服務器,畢竟51IDC的E5300服務器最便宜只須要450塊錢一個月。並且,之後你能夠根據業務發展狀況,隨時升級到更高配置的服務器。
2 若是你須要在一臺服務器同時運行多種應用服務,例如.Net+Exchange+SQLServer,那麼一個單路至強(例如X3330)或新一代酷睿I3/I7(雙核四線程)將是最佳的選擇。雖然從技術角度,這不是一個好主意,但至少可以幫你節約一大筆成本。
3若是你的服務器運行SQLServer、MySQL或者Oracle,並且目前有幾百個用戶同時在線,將來還會不斷增加,那麼你至少應該選擇安裝一個E5504(或更高主頻)的至強服務器。當半年後負載愈來愈大的時候,能夠選擇增長一個CPU。
4 若是你須要一臺遊戲服務器,那麼咱們建議你選擇一臺單路或雙路的至強服務器。
5須要注意的是,使用雙路CPU須要應用程序的支持,若是應用程序自己沒有對雙路CPU進行代碼優化,就不會帶來性能的顯著提高,並且將形成投資的極大浪費。
須要多大的內存?
一樣,」服務器運行什麼應用?「和 「須要支持多少用戶訪問?」兩個問題的答案,也將幫助咱們來選擇合適的內存容量。相比於CPU,咱們更認爲內存(RAM)是影響性能的最關鍵因素。由於在至關多正在運行的服務器中,咱們發現CPU利用率通常都在10%~30%之間,甚至更低。但咱們發現因爲內存容量不夠而致使服務器運行緩慢的案例比比皆是,若是服務器不能分配足夠的內存給應用程序,應用程序就須要經過緩慢的硬盤接口來交換讀寫數據,這將致使網站慢的使人沒法接受。內存大小主要取決於服務器的用戶數量,固然也和應用軟件對內存的最低需求和內存管理機制有關係,因此,最好由你的程序員或軟件開發商給你最佳的內存配置建議。咱們一樣在下面給出了一些常見應用環境下的內存配置建議:
1不管是Windows下的IIS仍是Linux下的Apache,通常狀況下Web前端服務器不須要配置特別高的內存,尤爲是在集羣架構中,1GB-2GB就已足夠。只有當幾千個併發用戶,並運行動態腳本的時候,咱們纔會考慮使用4GB或更高的內存。
2對於運行Tomcat、Resin、WebLogic、Websphere或.Net這樣的應用服務器,2GB內存應該是基準配置。更準確數字須要根據用戶數量和技術架構來肯定。
3 數據庫服務器的內存由數據庫實例的數量、表大小、索引、用戶數來決定,通常建議配置4GB以上的內存,咱們甚至在不少的客戶案例中使用了24GB到48GB的內存。
4諸如Imail、Notes、Exchange這樣的郵件服務器對內存的要求也並不高,1GB-2GB就能夠知足了。
5對於一臺文件服務器,1GB內存可能就足夠了。
6還有一些特殊的服務器,咱們須要爲之配置儘量高的內存容量,包括Squid,Varnish這樣的緩存服務器,和Memcached Server。
事實上,上面的數字已經足夠慷慨,因爲內存技術的不斷進化和價格不斷下降,咱們才得以近乎奢侈的討論4G、8G、16GB這些曾經不可想象的內存容量。早在2000年的時候,我面對的大多數服務器都是256MB、512MB內存,1GB已經算是高配,而那時一樣也須要知足大量用戶的訪問。因此,除了花錢購買內存來知足應用程序的貪婪以外,系統優化和內存管理仍然是咱們須要重視的問題。
須要怎樣的硬盤存儲系統?
硬盤存儲系統的選擇和配置是整個服務器系統裏最爲複雜的一部分,咱們須要考慮硬盤的數量、容量、接口類型、轉速、緩存大小,以及是否須要Raid卡,Raid卡的型號和Raid級別等問題。甚至在一些高可靠性高性能的應用環境中,咱們還須要考慮使用怎樣的外部存儲系統(SAN、NAS或DAS)。下面的圖表能夠幫助咱們順利地決定硬盤系統的相關問題。
網卡的問題
若是你的基礎架構是多服務器環境,並且服務器之間有大量的數據交換,那麼咱們建議你爲每臺服務器配置兩個或更多的網卡,一個用來對外提供服務,另外一個用來作內部數據交換。若是你對安全的要求特別高,咱們甚至能夠單獨安裝一個用於系統管理和平常維護的網卡。
至於網卡端口的速率問題,這主要取決於你對帶寬流量的評估。大多數狀況下,百兆網卡足夠用來對外提供服務,而內部數據交換建議使用千兆網卡。但話說回來,除了經典酷睿服務器以外,咱們如今很難找到百兆接口的服務器主板了。
還有一種狀況須要注意,若是你選擇51IDC的數據備份服務(Managed Backup Service),則須要一塊單獨的網卡鏈接到專有的數據備份網絡中,進行天天的數據備份,這會帶來幾個好處:不會佔用寶貴的外網帶寬、保證數據傳輸的安全、提供快速的數據備份速度。
咱們很是但願這篇文章可以幫助你爲服務器選擇合適的硬件配置,若是你閱讀後發現有不正確的地方,請在評論中指出來,咱們會及時更新並感謝你的熱情指正。前端