iN可以說算是一個對服務器相當了解的人了,畢竟從1997年開始就在互聯網行業做,甲方乙方也全都做過一輪。開發、部署、實施、運維也多多少的全幹過一圈。前幾天有粉絲看到了iN寫的家庭網絡實驗室的文章後給我留言,問到了服務器為什麼賣的這麼貴,自己有沒有可能攢一台服務器?
首先說說什麼是服務器:
很多人對服務器(SERVER)的認知其實是來自于自己在網絡遊戲裡面的經驗。例如我們在玩魔獸世界的時候,建立賬号的時候就要讓你來選擇自己所要出生的服務器。
這個概念就根深蒂固了,以至于很多魔獸玩家在線下初次碰面的得知對面那個人也在玩魔獸時候,總是先問“你是哪個服的”而不是問“你是哪個陣營、哪個種族的”。
後來魔獸世界十五周年的時候也買過一陣魔獸世界的退役服務器作為紀念品。
相信99%的人看到這個新聞的時候才真正的第一次目睹到自己所在的“服”的真身,沒錯,這就是一個服務器,準确的說是惠普的ProLiant BL25p刀片服務器。
當然了,原來服務器在機箱裡面放着的時候是這樣的:
并沒有後期魔獸世界紀念版那麼炫酷,可以說是樸實無華。
一台普通的服務器無非是以CPU、内存、硬盤、主闆等部件組裝而成,從部件的名稱上似乎和家裡的電腦也沒有什麼區别,那麼為什麼人家的叫做服務器,你家裡的隻能叫做PC機呢?
這一點就和卡車和家用轎車都叫“汽車”的說法很相似了,并不隻是一個車頭 貨箱的區别而是整體上的區别了——服務器是專用設備,而家裡的PC機是通用設備,這兩種用途從表面上看似一樣但本質完全不同。
以通道為例子:
在民用産品上,我們現在能拿到的最好的intel CPU是十二代的i9。
在i9上有20條PCI Express通道,按照intel的建議配置,可以弄出一條16X的PCI Express接口為一個顯卡提供數據通道,外帶弄一個4X的PCI Express接口接駁其他設備。或者弄兩個 8X的PCI Express提供雙顯卡支持,再附帶一個4XPCI Express接駁其他設備。這也就是我們目前看到的12代主闆的經典布局了。
民用領域的用戶頂多插兩三個顯卡就足夠了,而且PCI Express通道的數據傳輸量也足夠顯卡來處理的。
但是到了商用領域,還是以intel的CPU為例子,至強8315N并不是最頂級的intel商用CPU
但是這是一個可擴展型的真正的服務器CPU,和至強E系列還是有本質的不同。這種CPU本身帶有 64個PCI Express通道。通常情況下一個服務器主闆上會有2-4個CPU插槽。
可用的PCI Express通道達到幾百條。
PCI Express通道是什麼?簡單的說就是CPU對外界數據處理的通道,幾乎所有的IO數據都會從PCI Express通道上進行流轉。如果和汽車來比較,CPU相當于發動機,而PCI Express通道數量相當于發動機的氣缸數,而主頻僅僅是發動機裡面的汽油标号。
當然了更多的PCI Express通道數量就意味着更多的引腳數也就意味着更大的芯片面積,以及更高的制造成本。所以一塊至強8315N處理器intel的報價是3239美元,遠遠超過了500美元的i9民用處理器。
這種昂貴是從“根”上的昂貴,更何況一台标準的服務器并不隻安裝1個CPU。
同樣,在服務器上的任何部件幾乎都是這種情況。例如一塊高性能的服務器網卡是支持RDMA(Remote direct memory access,遠程直接内存訪問)技術的,什麼概念?
内存中的數據不經過操作系統、CPU處理直接通過網卡在網絡上傳輸。由于不經過操作系統,不僅節省了大量CPU資源,同樣也提高了系統吞吐量、降低了系統的網絡通信延遲。如果家裡的NAS帶有RDMA技術,同樣你家裡的客戶機網卡也支持這項技術,你會驚奇的發現,當NAS網絡滿載讀寫的時候,你的CPU占用率會驚奇的在0%上波動。
類似的技術還有NVMe,這個技術已經從服務器上下放到個人用戶領域了。之前叫做“NVMHCIS”是服務器上的一個規範展開後是“非易失性内存主機控制器接口規範”,NVMe僅僅是這個規範在PCI Express通道上的實現。NVMHCIS和RDMA的思路相同,在讀取存儲設備數據的時候也不占用CPU處理時間,就直接把數據從存儲設備搬運到内存裡面。
由于不占用CPU處理時間,帶有NVMHCIS規範功能的設備在讀取速度上要比不支持此規範的設備快50%-70%。但當然了,由于有一個芯片要做這件具體的事情,這塊芯片也就必須焊接在支持NVMHCIS的設備上,這就又是成本了。
同時出于可管理性、可維護性的考慮,服務器和家用電腦在結構上也有很大的不同。
以服務器硬盤為例,這些硬盤并不像家用PC機一樣固定在機箱内部,而是直接安放在服務器面闆上,方便抽取替換。
經過設置的服務器,在服務器正常工作不斷電的情況下可以将壞掉的硬盤直接進行替換。
類似這些性能功能上的要求在現在IT設計領域都是可以實現的,唯一的要求就是多加錢。
當然了,這是iN所說的狹義上的服務器,沒别的,就一個字——貴。
還有一群人沒啥錢,或者說是不甘心支付服務器所需要的那麼多的錢——殘酷的現實就是你隻能做一個廣義上的“服務器”。畢竟很多服務器操作系統并不是針對于某個廠商的某個特定型号的硬件來設計的。所以你的計算機隻要滿足了基本的X86規範,你就可以安裝一個X86的服務器操作系統,暫且充當一下“服務器”。
這些所謂的服務器看似是可以跑起來大部分的服務器操作系統,但是各種機能都是在拆東牆補西牆。有可能你在測試一個跑分性能的時候“服務器”表現還是可以接受的,但是在真正應用的時候性能莫名其妙的拉胯。這就是對服務器做單一性能測試的局限性了。
但說實在的,這種局限性其實是一種自欺欺人的行為,因為在家攢出來的“服務器”大多沒有真正的服務器硬件,你做出來的“PC服務器”其實也沒有真正服務器的高端功能。
那麼用服務器的配件來自己組裝一台服務器可行嗎?答案就是——你用奔馳的零件來組裝一輛奔馳轎車,似乎花出去的錢也足夠買一輛新奔馳了吧?在這一點上服務器廠商和汽車廠商是驚人的相同的。
所以說,個人組裝DIY一個主流服務器,其實是絕無可能的事情。
,