如何保證服務器可以支持百萬用戶訪問?服務器品牌有哪些?如何選購服務器?對于這些問題,今天我們就一起來看下關于服務器的相關知識。
假如你開發了一個網站或者一個app把他放到服務器上,之后你把它發布到了網上,運行良好,每天有幾百人的訪問量,用戶量不大,能快速地響應用戶的請求。
但是隨著你的運營,你的網站或app出名了,服務每天要承擔著成千上萬的人來訪問,這個時候對你來講,這是個好消息,但是對你的服務器來說這是個壞消息,因為它變得慢了,用戶多了,打開速度就慢了,服務器就很卡,所以它需要擴展了,你的服務器需要為成千上萬的用戶提供 7*24 不宕機服務,那么如何擴展,才能保持服務器不宕機呢?
一、服務器如何才能保證成千上萬的人訪問呢?
1、引入負載均衡器
負載均衡器的使用使得我們可以在多個服務器之間分配負載。
例如:
想象下有一萬個用戶在一分鐘內來訪問你的服務器。
遺憾的是,你的服務器在一分鐘內只能保證5千個用戶的流暢訪問。這怎么辦呢?同時運行兩個服務器就行了,就是增加了服務器來分配負載。
負載均衡器的功能就是把訪問請求分發到兩臺服務器上。用戶 1 往左,用戶 2 往右,用戶 3 再往左。。。以此類推。
如果一次有 100萬個用戶同時訪問服務器,這該怎么解決呢?確切地說,你可以擴展到200臺付款服務器,之后讓負載均衡器分發請求到這200服務器上。
2、擴展數據庫
雖然我們上面提到,關于大量的用戶,我們可以用成百上千臺服務器處理請求,但是他們都是用同一個數據庫存儲和檢索數據。
那么,我們不能以同樣的方式來擴展數據庫嗎?稍有不同。
我們需要做的第一件事是把數據庫分成多個部分。一部分專門負責接收并存儲數據,其他部分負責檢索數據。
3、緩存和內容分發網絡(CDN)
有什么方式能使服務更高效?
我們使用緩存而不是對每個請求都重新處理,緩存用于記住最后一次的結果并交由其他服務或者客戶端,這樣就不用每次都請求后端服務了。
緩存的加強版叫內容分發網絡(CDN),遍布全球的大量緩存。將這些緩存服務器分布到用戶訪問相對集中的地區或網絡中,在用戶訪問網站時,利用全局負載技術將用戶的訪問指向距離最近的工作正常的緩存服務器上,由緩存服務器直接響應用戶請求。
這使得用戶可以從物理上靠近他們的地方來獲取網頁內容,而不是每次都把數據從源頭搬到用戶那里。
4、分片處理
分片究竟是什么意思呢?其實也很簡單:Facebook 上需要為 20 億用戶提供個人資料, 可以把你的應用架構分解為 26 個 mini-Facebook。
用戶名如果以 A 開頭,會被 mini-facebook A服務器 處理, 用戶名如果以 B 開頭,會被 mini-facebook B服務器 來處理……
分片不一定按字母順序,根據業務需要,你可以基于任何數量的因素,比如位置、使用頻率(特權用戶被路由到好的硬件)等等。你可以根據需要以這種方式切分服務器、數據庫或其他方面。
二、服務器品牌
服務器的品牌非常多,應用在各個領域中,我們來看下服務器用的多品牌有哪些。
不止這些,還有中興、清華同方、富士通、海康等等,也是大家用的多的品牌。
三、服務器選購主要參數有哪些?
1、帶寬:服務器5M帶寬在線多少人?
我這里詳細的給你介紹下,帶寬和同時在線人數的計算,也方便后面有想了解的朋友在你這個提問上尋找答案。
首先,服務器帶寬說的5M帶寬,實際上是5Mbps/=625KB,需要是獨享帶寬,共享的話因為他人的因素無法計算。
然后計算你的網站大小,普通大小的網站頁面(圖片少,壓縮過,代碼優化)只有幾K,我們姑且按照50K計算。
所以 625kb/50k=12.5人,大概同時在線12.5人訪問這個50KB的頁面是沒有問題的。
要值得注意,這個是同時,也就是傳統意義上的同一秒,只要有先后發送請求的順序就可以錯開,所以5M帶寬嚴格意義上是很大的,如果你的頁面小,幾乎可以滿足千人在線,因為大部分的人都是點擊后瀏覽頁面的,不會說一直給你發送請求。
2、CPU
中央處理器(CPU,Central Processing Unit)是是一臺計算機的運算核心和控制核心。
計算機的性能在很大程度上由CPU的性能決定,而CPU的性能主要體現在其運行程序的速度上。影響運行速度的性能指標包括CPU的工作頻率、Cache容量、指令系統和邏輯結構等參數。
主頻:主頻也叫時鐘頻率,單位是兆赫(MHz)或千兆赫(GHz),用來表示CPU的運算、處理數據的速度。通常,主頻越高,CPU處理數據的速度就越快;
緩存(Cache):實際工作時,CPU往往需要重復讀取同樣的數據塊,而緩存容量的增大,可以大幅度提升CPU內部讀取數據的命中率,而不用再到內存或者硬盤上尋找,以此提高系統性能。但是由于CPU芯片面積和成本的因素來考慮,緩存都很小;
核心數:般情況下每個核心都有一個線程,幾核心就有幾線程,但是intel發明了超線程技術,可以讓單核模擬多核心工作,intel的超線程可以讓單核心具有兩個線程,雙核四線程 ;
線程數 :線程數多當然速度就快,但功耗就大 ,從英特爾品牌來看,主要有酷睿、至強、奔騰、凌動、賽揚、安騰和應用在物聯網領域的幾大品類。PC多以酷睿系列為主,至強則是服務器級處理器的唯一選擇。在真實的場景中,確實有玩家將至強E3處理器應用在PC之上,這主要是因為服務器級CPU會比一般PC能支持更大的緩存和多處理(安裝了多個物理CPU)。
3、芯片組
這里說的芯片組,是X86系統獨有的,一般RISC處理器都是SoC,芯片即為系統;X86比較獨特,以前是由CPU、南橋、北橋組成一個系統,現在是由CPU+PCH形成一個系統。因為接口和總線太多,太復雜,又由于X86系統一直傳承著繼承性,兼容性等特點,所以多個處理器可以匹配不同主板,同一個主板可以適配多種處理器,所以這樣做了功能拆分。
4、內存
服務器采用專用的ECC校驗內存,并且應當與不同的CPU搭配使用。通常情況下,內存數量越大,服務器的性能越高。特別是對于數據庫服務、代理服務、Web服務等網絡服務而言,內存數量顯得尤其重要。通常情況下,入門級服務器的內存不應該小于2GB,工作組級的內存不小于4GB,部門級的內存不小于8GB。
5、硬盤
SATA:Serial ATA接口,即串行ATA,采用串行技術以獲得更高的傳輸速度及可靠性。目前是第二代即SATAII。
SCSI:全稱為“SmallComputer System Interface”(小型計算機系統接口),具有應用范圍廣、多任務、帶寬大、CPU占用率低,以及熱插拔等優點,主要應用于中、高端服務器和高檔工作站
SAS:Serial Attached SCSI接口,即串行SCSI, 采用串行技術以獲得更高的傳輸速度。目前仍然是第一代
SSD:固態存儲硬盤(Solid State Disk)其特別之處在于沒有機械結構,以區塊寫入和抹除的方式作讀寫的功能,與目前的傳統硬盤相較,具有低耗電、耐震、穩定性高、耐低溫等優點。
另外,為了擴充數據存儲空間,保證數據存儲的安全性,成倍提高數據讀取速度,部門級和企業級服務器還往往采用SAS RAID卡,將若干硬盤組建為磁盤陣列。入門級服務器可采用廉價的SATA RAID卡,以實現相似的功能。
6、網卡
既然服務器要為網絡中其他計算機提供服務,自然就要實現與其他計算機之間的通訊。即使服務器的處理能力很高,如果無法快速響應客戶端的請求,那么,就會給網絡傳輸造成瓶頸。因此,服務器應當連接在傳輸速率最快的端口上,并最少配置一塊千兆網卡。對于某些有特殊應用的服務器(如FTP服務器、文件服務器或視頻點播服務器),還應當配置兩塊千兆網卡。需要注意的是,千兆網卡通常需要安裝在64位PCI插槽中。
7、冗余
可靠性是服務器最重要的指標。既然服務器在網絡中的作用如此重要,那就要求服務器必須非常穩定,以便能隨時為客戶端能提供服務,也就是說,服務器需要不間斷地工作。另外,所有重要數據都存儲在服務器上,一旦硬盤損壞,數據將全部丟失。為了保證系統的可靠性,服務器采用了專門的技術。
磁盤冗余。磁盤冗余采用兩塊或多塊硬盤來實現磁盤陣列,即使一塊硬盤損壞,也不會丟失數據。
部件冗余。由于所有硬件設備都有發生故障的可能,因此,許多重要硬件設備都不止一個,例如,網卡、電源、風扇,這樣可以保證部分硬件損壞之后,服務器仍然能夠正常運行。
熱插拔。所謂熱插拔,是指帶電進行硬盤或板卡的插拔操作,實現故障恢復和系統擴容。既然服務器是7×24小時工作的,那么,即使在更換或添加硬盤,甚至在插拔板卡時也不能停機。因此,熱插拔對于服務器則言,就顯得非常重要。
8、可擴展性
服務器的可擴展性既被用于部件冗余以保證運行的穩定性,同時,也被用于提升系統配置、增加功能。因此,服務器除了有較多的硬盤位置、內存插槽、CPU插座外,還擁有豐富的板卡插槽。如果硬盤數量較多,還應當能夠擴充電源模塊。
編輯:黃飛
?
評論
查看更多