跳转至

选择 CPU

选择 CPU 是组建服务器时最重要的决策。CPU 决定了主板的选择,而主板又会对内存、PCIe 和存储选项有一定限制。CPU 还决定了服务器部分的功耗和发热量。

工作负载

根据你想在服务器上运行的任务类型,你需要选择不同的 CPU。以下是一些示例:

文件服务器(NAS)

文件服务器的 CPU 选择取决于并发用户数量和你希望同时服务的数据量。

对于只有少量用户的小型文件服务器,像 Intel Celeron 或 AMD Athlon 这样的低端 CPU 就足够了。在家庭环境中,我们通常不会同时传输大量数据,CPU 大部分时间都处于空闲状态。甚至树莓派也可以胜任小型文件服务器。

如果你有特殊需求,以下是一些常见场景:

ZFS

ZFS(以前称为 Zettabyte 文件系统)是一种带有卷管理功能的文件系统。1

现在,人们常说的 ZFS 实际上指的是 OpenZFS。OpenZFS 是原始 ZFS 项目的开源实现,支持 Linux、FreeBSD 及其他操作系统。

为 ZFS 文件服务器选择 CPU 稍微复杂一些。ZFS 本身对 CPU 要求不高,但它的一些特性会消耗较多 CPU。

强烈建议 ZFS 配备 ECC 内存,因为 ZFS 会用内存做读写缓存。并不是所有数据都会立即写入磁盘,因此高稳定性的内存非常重要。ECC 内存需要 CPU 和主板都支持。

查询 CPU ECC 支持
品牌 链接 相关栏目
Intel ark.intel.com Memory Specifications
AMD amd.com 找到你的 CPU,然后查看 Connectivity

高吞吐量网络

如今,10Gbit/s 甚至 100Gbit/s 的网卡已经很便宜。随着越来越多的数据中心淘汰高端网卡,它们进入了二手市场。

对于高吞吐量网卡,CPU 可能成为瓶颈。如果你的网卡无法将部分工作卸载给 CPU,你就需要更高性能的 CPU。

大容量存储池

如果你需要存储大量数据,就需要一颗拥有更多 PCIe 通道的 CPU。通常主板自带的 SATA(SAS)接口数量有限,你需要 HBA(主机总线适配器)或 RAID 卡,这些卡都需要 PCIe 通道。

查询 CPU PCIe 通道数
品牌 链接 相关栏目
Intel ark.intel.com Expansion Options
AMD amd.com 找到你的 CPU,然后查看 Connectivity

加密

如果你想加密数据,需要一颗支持硬件加密的 CPU,这会大幅提升加密性能。(没人愿意等几个小时来加密数据,对吧?)

不用太担心,大多数 2010 年以后发布的 CPU 都支持硬件加密。

去重

去重是消除重复数据的过程,常用于备份系统以节省存储空间。

如果你需要实时去重,需要一颗高性能 CPU。事后去重对 CPU 要求较低,但仍然需要大量内存。

媒体/流媒体服务器

媒体服务器是为其他设备提供多媒体文件的服务器。它可以是带播放器的简单文件服务器,也可以是带转码功能的高级服务器。

大多数流媒体服务对 CPU 要求不高,只需读取文件并发送给客户端。

如果你需要转码媒体文件,则需要 GPU。转码是将媒体文件从一种格式转换为另一种格式的过程,常用于将高质量文件转为低质量以便流式传输(节省带宽和存储空间)。

通常,带集成显卡的 CPU 就足够转码。如果需要同时转码多个文件,则需要独立 GPU。(无需购买高端显卡,低端和高端显卡的解码/编码能力差别不大。)

查询 GPU 编解码支持
品牌 链接 相关栏目
Intel QSV Wikipedia Fixed-function Quick Sync Video format support
Nvidia Wikipedia GPU support
AMD 通常很少用 AMD 做转码

虚拟化服务器

虚拟化服务器用于运行多个虚拟机。每个虚拟机有自己的操作系统和应用,虚拟化服务器负责管理虚拟机的资源。通常建议选择多核心 CPU。

最重要的特性是 CPU 必须支持虚拟化,即 VT-x(Intel)或 AMD-V(AMD)。这个特性让 CPU 更高效地运行虚拟机。大多数现代 CPU 都支持。

如果你想将设备(尤其是 GPU)直通给虚拟机,需要 CPU 支持 IOMMU。IOMMU 允许 CPU 将设备分配给虚拟机,常用于游戏虚拟机。Intel 称为 VT-d,AMD 称为 AMD-Vi。

请确保在 BIOS 中启用这些特性,有些主板默认关闭。

其他服务

根据你的经验选择 CPU,或者向社区寻求帮助。

All in one

Warning

强烈不推荐 All in one 服务器。一旦某个服务导致系统崩溃,整个服务器都会宕机。最好为不同服务准备多台服务器。至少,主路由器要与服务器分开(否则当你不小心搞坏服务器时,家人会很生气)。

如果你仍然想要 All in one 服务器,只需将你想运行的所有服务的需求加在一起即可。