不少架構師都是從軟件開發成長起來的,你們在軟件領域都有很深的造詣,大部分人對硬件接觸的不多。而成爲架構師後須要頻繁的跟人 、硬件 、軟件 、網絡打交道,本篇文章就給你們帶來服務器硬件方面的相關知識,主要包括服務器、CPU、內存、磁盤、網卡。node
根據服務器的外形和使用場景咱們將服務器分爲如下四種:程序員
服務器的機箱只是外殼,核心架構仍是主板。算法
這個圖是Intel典型的主板芯片組架構:服務器的主板有個統一的中央芯片組(Intel C600),芯片組能夠鏈接多個CPU(E5-2400/2600),CPU之間經過QPI快速通道進行鏈接,CPU與內存插槽,PCIE插槽之間鏈接,芯片組還與低速的外設進行鏈接(USB、網卡、SATA等)。編程
作服務選型主要基於如下幾個方面:服務器
穩定性微信
物理機、虛擬機、容器網絡
CPU做爲服務器的核心固件,咱們主要經過如下幾個概念來了解:架構
以上的這些概念數據能夠經過CPU的產品規格書中進行詳細瞭解。在服務器上能夠經過 lscpu
命令查看cpu信息併發
上圖服務器CPU顯示有72個,是由於有2個Socket,每一個Socket有18核而每核能夠同時運行2個線程,經過 2 x 18 x 2 = 72
獲得。負載均衡
Intel如今主推的是「Intel至強可擴展」系列,在這個系列下又分爲四檔:鉑金、金、銀、銅,每檔下面又有不一樣的型號
AMD系列主要用到的是霄龍系列,霄龍系列CPU核數很高,下面咱們看看幾款具體的產品
型號 | CPU核心數 | 線程數量 | 最大加速時鐘頻率 | 基準時鐘頻率 | 默認TDP/TDP |
---|---|---|---|---|---|
霄龍7742 | 64 | 128 | 高達3.4GHZ | 2.25GHZ | 225W |
霄龍7702 | 64 | 128 | 高達3.35GHZ | 2GHZ | 200W |
霄龍7702P | 64 | 128 | 高達3.4GHZ | 2GHZ | 200W |
霄龍7642 | 48 | 96 | 高達3.35GHZ | 2.3GHZ | 225W |
霄龍7552 | 48 | 96 | 高達3.3GHZ | 2.2GHZ | 200W |
霄龍7542 | 32 | 64 | 高達3.4GHZ | 2.9GHZ | 225W |
鯤鵬916(低功耗級)
鯤鵬920-3326/4826(極致效能型)
鯤鵬920-3326/4826(極致性能級)
經過上圖你們能夠看到國產CPU與國外CPU之間的差距,性能基本只有Intel中檔CPU性能的一半左右,國產CPU還有很長的路要走。
NUMA 即 Non-Uiform Memory Access
(非一致性內存訪問),結合咱們以前講述的主板架構,兩顆CPU之間有一個通道,每一個CPU與各自的內存通道進行直連,能夠經過下圖直觀看出。
CPU0 訪問 左邊的內存通道速度很快,CPU1訪問右邊的內存通道也很快,當CPU1要訪問左邊的內存通道必需要藉助CPU0的幫忙,須要先經過QPI總線找到CPU0,再來訪問左邊的內存通道,這就產生了額外的開銷,訪問左邊內存通道的開銷至關於直連訪問右邊通道開銷的3倍。
因此對於計算密集型任務咱們須要儘可能避免這種跨CPU的內存訪問,這就是NUMA的問題,非一致性指的是訪問本地和跨CPU訪問的代價差異不一致
咱們能夠經過指令 numactl -s
查看numa的信息
可使用指令 numactl --cpunodebind=0 --membind=0 command
指定進程使用的numa節點和內存
如上就是讓 command
指令只使用cpu0 ,和內存0,這就使得進程指令在運行的時候使用的CPU和內存在同一側,達到計算性能速度最大化的效果。
內存你們平時工做中接觸的都比較多,對於內存咱們主要經過如下幾個方面來了解:
主要經過如下三個命令全面瞭解內存信息
dmidecode -t memory | more
指令查看內存信息,效果以下:
dmidecode -t memory | grep Size
指令查看內存大小並判斷內存是否正常工做
將內存插入主板時通常須要對稱插入,經過上圖咱們能夠看到下面有根內存不工做。
free
指令查看內存容量
系統剩餘內存 available 是咱們最關心的一個值,不要被free列唬住了。
對於磁盤咱們主要經過吞吐率和IOPS兩個指標來對其衡量
吞吐率/吞吐量:單位時間內讀寫的數據量
IOPS:每秒IO操做的次數
爲何不少性能比較慢的服務在軟件層面進行優化收益很小,而更換一塊固態硬盤就能解決全部問題,問題就在這裏。
普通固態硬盤的吞吐率大概爲機械硬盤的2~3倍,而IOPS確達到了機械硬盤的250~300倍。
IOPS和數據吞吐量適用於不一樣的場合:
在隨機讀寫頻繁的應用中,如OLTP(Online Transaction Processing),IOPS是關鍵衡量指標。
對於大量順序讀寫的應用,則更關注吞吐量指標。
讀取10000個1KB文件,用時10秒 Throught(吞吐量)=1MB/s ,IOPS=1000 追求IOPS
讀取1個10MB文件,用時0.2秒 Throught(吞吐量)=50MB/s, IOPS=5 追求吞吐量
網卡,又稱網絡適配器或網絡接口卡,英文名爲Network Interface Card。在網絡中,若是有一臺計算機沒有網卡,那麼這臺計算機將不能和其餘計算機通訊,它將得不到服務器所提供的任何服務了。固然若是沒有網卡,就稱不上服務器了,因此說網卡是服務器必備的設備,就像普通PC(我的電腦)要配處理器同樣。
咱們也能夠也經過如下幾個維度來了解下網卡:
網卡速度規格
100M、1G、10G、25G
網卡接口類型
RJ45(電、短距離)、光纖(光、長距離)
網卡綁定模式
多網卡綁定一方面可以提升網絡吞吐量,另外一方面也能夠加強網絡高可用。
從軟件的角度來看,多網卡綁定實際上只須要提供一個額外的bond驅動程序便可,經過該虛擬網卡驅動程序能夠將實際多塊網卡屏蔽,對TCP/IP協議層而言只存在一個Bond網卡。Linux主要有7種綁定模式:
該模式下,鏈路處於負載均衡狀態,數據以輪詢方式向每條鏈路發送報文,基於per packet方式發送。即每條鏈路各一個數據包,這模式好處在於增長了帶寬,同時支持容錯能力,當有鏈路出問題,會把流量切換到正常的鏈路上。
本文給你們介紹了服務器硬件的基礎知識,只有對硬件有了全面的認識何瞭解咱們才能在硬件選型時作到心中有溝壑,能夠針對各個組件的特色選取合適的硬件來支撐其運行。
這裏爲你們準備了一份小小的禮物,關注公衆號,輸入以下代碼,便可得到百度網盤地址,無套路領取!
001:《程序員必讀書籍》
002:《從無到有搭建中小型互聯網公司後臺服務架構與運維架構》
003:《互聯網企業高併發解決方案》
004:《互聯網架構教學視頻》
006:《SpringBoot實現點餐系統》
007:《SpringSecurity實戰視頻》
008:《Hadoop實戰教學視頻》
009:《騰訊2019Techo開發者大會PPT》
010: 微信交流羣