本文目录
VPS 和独立服务器可以运行同样的 Linux 镜像和同样的应用。区别在于底层:是共享宿主机上分出的一小块,还是整台机器。对于规模小、负载忽高忽低的工作负载,一小块往往就是正确的选择。而对于全天候高负荷运行的工作负载,裸金属通常在性能可预测性和单位算力价格上更胜一筹。下面教您判断自己属于哪种情况。
您租到的究竟是什么
VPS(虚拟专用服务器)就是一台虚拟机。KVM 等虚拟化管理程序(hypervisor)在一台物理宿主机上运行多台虚拟机,并把宿主机的 CPU 线程、内存、磁盘和网络分配给它们。有些套餐会为您预留硬件线程;但很多套餐会超售:卖出的 vCPU 比宿主机的线程还多,赌的是所有租户不会同时忙起来。
独立服务器则是物理机本身。每个核心、每 GB 内存、NVMe 硬盘和网络端口都归您所有;除非您自己安装,否则操作系统之下没有任何虚拟化管理程序。
“吵闹邻居”与 CPU 窃取时间
在共享宿主机上,每个 vCPU 都是一个线程,由虚拟化管理程序与其他所有租户的线程一起调度。当其他租户繁忙时,您的 vCPU 即使已经准备就绪,也可能仍需等待。Linux 将这段等待报告为窃取时间(steal time):
top -bn1 | head -n 5
vmstat 1 5在 top 中,窃取时间是 %Cpu(s) 行的最后一个字段;在 vmstat 中,则是 st 列。在这个示例中,有 7.6% 的 CPU 时间被窃取:
%Cpu(s): 41.2 us, 3.0 sy, 0.0 ni, 47.5 id, 0.3 wa, 0.0 hi, 0.4 si, 7.6 stst 表示您的虚拟 CPU 想要运行、而虚拟化管理程序却在为其他租户服务的时间占比。短暂的峰值很常见;但如果应用繁忙时窃取时间一直居高不下,就意味着您花钱买的 vCPU 正在排队等待。在可突发(burstable)套餐上,CPU 积分耗尽后被限流,看起来也是同样的现象。
窃取时间只是看得见的那部分。即使是独享 vCPU,租户之间仍共享 L3 缓存、内存带宽,而且往往还共享存储和网络路径,因此邻居的批处理任务仍可能让您的响应时间出现抖动。在裸金属上,st 始终为零:您的系统之下根本没有虚拟化管理程序。
磁盘 I/O:独享 NVMe,无需排队
VPS 的存储通常是分给您的一部分本地 NVMe 硬盘,或者是网络块存储;后者的每次读写都要穿过网络到达存储集群。两者通常都按卷设有性能上限,而网络存储还会给每次 I/O 增加一个往返。对于数据库、搜索索引和游戏世界来说,单次操作的延迟比宣传的吞吐量更重要:请关注 top 中的 wa(I/O 等待),以及 iostat -x 1 的 r_await 和 w_await 列。
在独立服务器上,NVMe 硬盘直接挂在本机的 PCIe 总线上,完整的队列深度只为您的工作负载服务。每款 DediJet 配置都包含 NVMe,双盘服务器默认配置软件 RAID 1。与其相信规格表,不如亲自实测;下面这次 fio 测试会在一个临时文件上进行 4 KB 随机读取:
apt install -y fio
fio --name=randread --filename=/root/fio.test --size=4G --rw=randread --bs=4k --iodepth=32 --numjobs=4 --ioengine=libaio --direct=1 --runtime=60 --time_based --group_reporting
rm /root/fio.test也在您现在的 VPS 上跑一遍,然后比较两份输出中的 IOPS 和 clat percentiles(完成延迟)。
带宽:按 GB 计费的出站流量,还是不限流量端口
云平台和许多 VPS 套餐都会对出站流量计量收费:流出的每一 GB 都要付费,有时会先扣除套餐内含的额度。费用随流量线性增长:
monthly egress cost = GB sent per month × price per GB而配备不限流量端口的独立服务器恰恰相反:您为端口速率付费,流量不计量。每款 DediJet 配置都包含按端口速率(1 Gbps 或 10 Gbps)全天候不限流量的带宽,只需遵守《可接受使用政策》。一个 1 Gbps 端口满速运行 30 天,每个方向约可传输 324 TB。
要找到两种模式的分界点,用服务器的月付价格除以报价中的每 GB 单价即可。以 Ryzen 7 9700X 为例,149 ÷ 单价得出的 GB 数就是临界点:超过这个量,光是出站流量费就比整台服务器还贵。我们的不限流量指南详细演算了这些数字。
root 权限、IPMI 与硬件本身
两种方案都能让您在操作系统内获得 root 权限。区别在于操作系统之外的部分:
- 带外访问。DediJet 服务器配备 IPMI/KVM-over-IP:基于浏览器的控制台、电源控制,以及可挂载您自己 ISO 的虚拟介质。即使一条防火墙规则或一次内核更新把您锁在门外,您依然有屏幕和键盘可用。VPS 的控制台只能连到虚拟机,永远碰不到硬件。
- 自己的虚拟化平台。一键安装 Proxmox VE,或通过 ISO 安装 VMware ESXi(需自备许可证)、TrueNAS 或 NixOS,无需嵌套虚拟化即可运行虚拟机和容器;而许多 VPS 套餐要么禁用嵌套虚拟化,要么让它慢下来。
- 真实的硬件数据。SMART 与 NVMe 健康状态、CPU 拓扑与频率表现、网卡设置:您看到的是真实设备,而不是虚拟设备。
代价是:服务器为非托管型,您就是管理员。我们的入门步骤和 IPMI/KVM 控制台指南涵盖了这些基础知识。
算算成本:每核与每 GB 内存的价格
公平的比较方法,是用月付价格除以您得到的资源。下面是三款 DediJet 服务器(月付价格,不含增值税):
| 服务器 | 价格 | 核心 / 线程 | 内存 | 存储 · 端口 | 每核价格 | 每线程价格 | 每 GB 内存价格 |
|---|---|---|---|---|---|---|---|
| Ryzen 7 9700X | 64 GB DDR5 | 2 × 1 TB NVMe · 1 Gbps | $18.63 | $9.31 | $2.33 | ||
| Ryzen 9 9950X | 128 GB DDR5 | 2 × 2 TB NVMe · 1 Gbps | $16.81 | $8.41 | $2.10 | ||
| EPYC 9354P | 384 GB DDR5 ECC | 2 × 3.84 TB NVMe · 10 Gbps | $21.84 | $10.92 | $1.82 |
每一列都是用全价除以单项资源得出的,因此各列数字不能相加。每一行价格都已包含存储、不限流量端口、一个 IPv4 地址、IPMI 和 DDoS 防护。
用同一把尺子去衡量任何云服务器或 VPS 报价。一个 vCPU 通常对应一个硬件线程,而不是一个完整的核心,所以请按线程比较,或将 vCPU 数量减半换算成核心数:
price per thread = monthly cost ÷ dedicated vCPUs
price per core = monthly cost ÷ (dedicated vCPUs ÷ 2)
monthly cost = hourly price × 730请以独享 vCPU 为准,而不是共享型或可突发型 vCPU,并把服务器价格中已包含的项目加进去:块存储、按您实际用量计算的出站流量、额外 IP 地址。例如,一台 16 vCPU、64 GB 内存的实例,在不计存储和出站流量的情况下,月费必须低于 $149,才能在每线程价格上追平 Ryzen 7 9700X。
有两点需要注意。睿频可达 5.5 GHz 的 Zen 5 核心上的一个线程,与低主频服务器处理器上的一个 vCPU,每秒完成的工作量并不相同,所以每线程价格只是起点,而非定论。另外,核心也不是唯一的衡量维度:EPYC 9354P 的每核价格更高,但它在三者中每 GB 内存价格最低,还配有 ECC 内存和 10 Gbps 端口。请用我们的性能测试指南实测您的真实工作负载。
何时仍应选择 VPS
- 工作负载很小。个人网站、机器人程序或小型 VPN 节点用不着一整台机器。我们价格最低的有货服务器为
$59/月 ;如果您的工作负载用一台小虚拟机就能满足,VPS 会更便宜。 - 需求是突发性或短期的。跑一小时的 CI runner、一次压力测试、每周一次的数据任务:按小时或按秒计费,比按月租一台大部分时间闲置的服务器更划算。
- 您需要自动伸缩。如果您的技术栈会随流量自动横向扩展,或缩容到零,那么云实例更契合这种模式;而 DediJet 按月计费。
- 您依赖托管服务。对一些团队来说,同一平台上的托管数据库、消息队列和对象存储值得多花些钱。
- 您希望由平台来消化硬件故障。一些平台会在硬件故障时把虚拟机放到另一台宿主机上重启。独立服务器只是一台机器:我们会在确诊故障后 4 小时内更换故障部件,但真正的高可用要靠备份和第二台服务器。
很多团队最终会采用混合架构:用独立服务器承载稳定的基础负载,用云实例应对突发流量。
对照清单:您该选哪一种?
如果以下大部分条件都符合,裸金属很可能更划算:
- 工作负载全天候运行,且基础负载稳定。
- 您观察到持续的窃取时间,或无法用自身代码解释的延迟抖动。
- 磁盘延迟很关键:数据库、搜索、游戏世界、构建缓存。
- 出站流量在您的账单中占比很大,或难以预测。
- 您需要自己的虚拟化平台、自定义 ISO 或带外管理控制台。
- 计入存储和出站流量后,您拿到的报价按每个独享 vCPU 折算,高于我们的每线程价格。
- 您的团队中有人能熟练地管理服务器。
如果您需要按小时计费、自动伸缩,或者只需要一两个 vCPU,那就继续使用 VPS。
准备好比较了吗?在对比页面上并排查看各款配置,或从高性能型和企业级系列入手。按月计费且免安装费,用真实工作负载测试一个月,投入并不大。
本文提及的服务器
- AMD Ryzen 7 9700X
8C / 16T · 64 GB DDR5 · 2 × 1 TB NVMe · 1 Gbps$149/月有货部署 AMD Ryzen 7 9700X - AMD Ryzen 9 9950X
16C / 32T · 128 GB DDR5 · 2 × 2 TB NVMe · 1 Gbps$269/月有货部署 AMD Ryzen 9 9950X - AMD EPYC 9354P
32C / 64T · 384 GB DDR5 ECC · 2 × 3.84 TB NVMe · 10 Gbps$699/月有货部署 AMD EPYC 9354P