不少架构师都是从软件开发成长起来的,你们在软件领域都有很深的造诣,大部分人对硬件接触的不多。而成为架构师后须要频繁的跟人 、硬件 、软件 、网络打交道,本篇文章就给你们带来服务器硬件方面的相关知识,主要包括服务器、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: 微信交流群