服务器价格高昂的原因是什么?自己动手DIY可行吗?

发表时间: 2022-06-04 13:53

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一个主流服务器,其实是绝无可能的事情。