跳转到内容

CPU 与内存怎么选 ​

规划你的第一台宿主机已经给出了 CPU 和内存该看什么的粗线条。这篇往细了讲:虚拟化必需的两个开关是什么、近几年的"大小核" CPU 有什么坑、内存容量怎么估得更准,以及 ECC 和 ZFS 到底值不值得为它们多花钱。

两个必需的 CPU 特性 ​

特性别名没有会怎样
硬件虚拟化Intel VT-x / AMD-V虚拟机完全跑不起来,PVE 装了也没用
I/O 虚拟化Intel VT-d / AMD-Vi(也叫 IOMMU)没法把显卡、HBA、USB 这类设备整个交给某台虚拟机

近十年出厂的 64 位 CPU 基本都带这两项,但主板固件经常把 IOMMU 阉割掉,尤其是低端型号和部分品牌整机——CPU 支持不代表能用。两项都要在 BIOS 里手动打开,具体位置和确认命令见安装前的 BIOS/UEFI 设置。

大小核架构:新买的 CPU 要留意什么 ​

Intel 从 12 代酷睿开始引入性能核(P-core)和能效核(E-core)混合架构,这类"大小核"设计给虚拟化带来一个已知的复杂点:调度器需要知道该把哪类负载放到哪种核心上。

社区里能查到的真实情况大致是:

  • 早期内核对大小核的调度支持不完善,虚拟机的负载有可能被排到能效更低的 E-core 上,表现为性能不如预期。
  • PVE 7.3 起支持用 affinity(CPU 亲和性)选项把重要虚拟机绑定到指定核心,这是社区常用的应对办法之一。
  • 少数机型在 BIOS 同时开启 P-core 和 E-core 后,PVE 内核在启动阶段异常,关闭 E-core 后恢复正常——这类问题和具体主板/固件版本相关,不是所有大小核 CPU 都会遇到。
  • 内核版本对这类调度的支持在持续改进,新内核不代表问题已经完全消失。

怎么判断自己的机器有没有问题,而不是猜

  1. 先按默认设置装好 PVE,跑几台典型负载的虚拟机,观察是否卡顿或者启动异常。
  2. 遇到性能不及预期,用 qm set <vmid> --affinity <核心范围> 试着把关键虚拟机绑定到性能核,观察是否改善。
  3. 只有前两步都解决不了,且能接受损失部分核心数时,才考虑在 BIOS 里关闭能效核作为最后手段。
  4. 不要在购买前假设某个型号"能用"或"不能用"——去搜「你的具体型号 + Proxmox」看有没有人踩过坑,情况会随内核版本变化。

单路、非混合架构的服务器级 CPU(大多数 Xeon、EPYC)不涉及这个问题。

内存容量怎么估得更准 ​

规划你的第一台宿主机里的清单法(列客户机、加内存、留给 PVE 2 GB)是起点。除此之外,官方文档给出两条硬性参考:

  • 宿主机和 PVE 服务自身至少需要 2 GB。
  • 如果用 ZFS 或 Ceph,额外经验值是:每 1 TB 已使用存储空间,大约再留 1 GB 内存。

这是一个粗略经验值,不是精确公式,实际占用受数据集数量、压缩率、去重(不建议开)等因素影响。

内存比 CPU 更容易先撞墙

家用场景下 CPU 通常很闲,内存却会被虚拟机、容器和 ZFS ARC 一起挤占。预算有限时,优先把钱加在内存而不是核心数上。

ECC 值不值得 ​

Proxmox 官方的最低硬件要求没有强制要求 ECC 内存。要不要为它多花钱,看你的场景:

  • 生产环境、尤其是跑 ZFS 或 Ceph:官方文档和社区都建议用 ECC。内存里一个未被发现的位翻转,理论上可能在写入磁盘前就悄悄损坏数据,ECC 能在这类错误发生时检测并纠正。
  • 家庭实验室、学习环境:不用 ECC 完全能正常使用,数据丢失的后果和生产环境不是一个量级。

ECC 需要三方都支持

CPU、主板、内存条三者都得支持 ECC 且开启对应模式,才是真正生效的 ECC。有些消费级主板会在参数表上写"支持 ECC",实际只是能识别、不启用纠错功能,购买前确认清楚。

ZFS 会吃掉一大块内存 ​

打算用 ZFS 的话,它的 ARC(自适应缓存)默认会占用可观的内存来加速读取。这不是 bug,是设计如此,但需要在规划阶段就留出空间,否则会挤压客户机可用内存。详细的 ARC 行为和限制方法见 ZFS 入门。

检查结果 ​

装好系统后,在宿主机 shell 确认这几项:

sh
# 虚拟化标志位存在(Intel 显示 vmx,AMD 显示 svm)
grep -oE '(vmx|svm)' /proc/cpuinfo | sort -u

# KVM 模块已加载
lsmod | grep kvm

# 核心数和线程数是否符合预期(大小核 CPU 会看到不同的核心分组)
lscpu

# 总内存和当前占用
free -h

lscpu 在大小核 CPU 上通常会分别列出不同类型核心的数量,可以用来确认系统识别到的核心配置和你预期的一致。

常见问题 ​

BIOS 里找不到虚拟化开关。 换个位置找,常见藏在 Advanced → CPU Configuration 之下,不同厂商叫法差异很大,见 BIOS/UEFI 设置。

装了 ECC 内存,但不确定有没有生效。 到主板厂商的官方兼容列表确认该内存条型号是否在支持列表里;系统层面可以查看主板 BIOS 里是否有 ECC 相关的状态显示,没有直接入口的话通常需要联系厂商或查硬件监控工具。

大小核 CPU 装完后个别虚拟机很卡,其他正常。 先怀疑调度问题,参考上文的三步判断法,而不是急着换硬件。

延伸阅读 ​

Proxmox VE 非官方中文使用指南,与 Proxmox Server Solutions GmbH 无隶属关系。