云服务器跑分与配置虚标:老旧CPU的识别与避坑
三重取证拆穿老旧CPU溢价谎言
用Steal Time+磁盘Cache+真实跑分三重验证,拒绝为老旧CPU付溢价。
跑分真实与标称差多远
云服务器跑分与标称配置的差距,常常比想象中更大。尤其是一些标榜“高主频”的老旧CPU,比如 E5-2690 v4、E5-2680 v4 这类 2016 年前后的至强,单核频率看着不低,但实际一测单线程跑分可能只有新代至强的一半。跑分“虚标”的根源主要有两个:一是硬件代际差异,二是超卖导致的 Steal Time 飙升。
老平台搭虚拟化后,/proc/stat 里的 steal 字段会告诉你 CPU 被 hypervisor 抢走的时间。如果 mpstat -P ALL 1 看到 %steal 长期超过 10%,说明邻居在和你抢资源,此时无论标称多高,跑分都不稳定。另一个隐蔽指标是磁盘 Cache 断崖——老 CPU 配的老存储,缓存用完后 IOPS 直接腰斩,跑分曲线上会有一段明显下坠。
想量化差距,可以跑一遍 yabs 或 sysbench cpu --threads=1 run,对比官方标称。我遇到过标称 3.5GHz 的老平台,实际单核跑分比 2.9GHz 的新平台低 40%。也就是说,你为“高主频 + 老配置”付的钱,可能有一半是给二手硬件的溢价。这正是 FinOps 里最典型的负成本:同样预算,选新平台或官方认证实例,单位算力成本更低。
所以,别只看标称参数。建议在 云划算 里按实测跑分和 Steal Time 阈值筛选实例,把预算花在真性能上。
Steal Time揪出超卖
看透云服务器配置虚标,第一刀先切 steal time。这指标是 Hypervisor 跟你打招呼的暗号:当物理 CPU 被房东塞给隔壁虚拟机时,你家的 vCPU 只能干等。用 top 按 C 切到 CPU 列表,再按 t 看 steal 列,或者直接跑 vmstat 1 观察 st 字段。反复采样几分钟,如果 st 均值超过 5%,甚至有刺尖顶到 20%+,恭喜,你正和一群恶邻共享同一个物理核。
# 连续采样 10 次,每次间隔 1 秒,取 st 平均值
vmstat 1 10 | awk 'NR>3 {sum+=$16} END {print "avg steal:", sum/(NR-3), "%"}'Steal Time 突刺比平稳高值更值得警惕——它说明超卖是动态的,高峰期你的响应时间会随机抖成心电图。结合上一节提到的磁盘 Cache 断崖,基本能实锤这是台老旧物理机上被反复转租的宿主。
从 FinOps 角度看,这就是典型的溢价欺诈:你按新硬件的价格付费,买到的却是老 CPU 被切碎后的残渣,溢价率直逼公有云三倍。别迷信高主频,老至强单核再猛,扛不住邻居的抢跑。跑分前先看 steal,否则 Geekbench 数字再漂亮,也只是超卖沙盘上的海市蜃楼。这个指标免费、可复现,比任何商家承诺都诚实。
磁盘Cache断崖取证
前面用 Steal Time 抓超卖,但有些老机房会把 CPU 调度压得很平,Steal 数据反而不难看。这时候别急着下结论——把火力转向磁盘 Cache,它是最不会撒谎的硬件之一。
实操上,我习惯用 fio 连续跑两轮:先测带 Page Cache 的 buffered 写,再测绕过 Cache 的 direct 写。命令大致是这样:
# 第一轮:缓冲写(吃内存Cache)
fio --name=cache-test --rw=write --bs=1M --size=2G --direct=0 --ioengine=libaio --runtime=30 --time_based
# 第二轮:直写(绕Cache,直接落盘)
fio --name=direct-test --rw=write --bs=1M --size=2G --direct=1 --ioengine=libaio --runtime=30 --time_based重点看两轮数值的“断崖比”。新配 NVMe 云盘,直写在缓冲写的 60%~80% 左右;老旧机械盘或共享存储,直写可能直接掉到 10% 以下。如果标称 2000 MB/s,直写却只有 150 MB/s,那就是典型的 Cache 断层——数据先骗你,落盘才见底。
这个取证要跟 Steal Time 串起来看。Steal 高说明邻居在抢 CPU,磁盘断崖说明存储通道也在挤兑——两个证据叠加,基本可以判定超卖,而且不是一般超卖,是连底层硬件都老掉牙那种。
结合 FinOps 视角,这种机器就该按“残值”计价。标称配置对应的溢价率如果超过新机三成,直接砍;砍不动就换。毕竟你花钱买的是 Spec,不是 Cache 上的海市蜃楼。完整避坑清单可以翻 云服务器跑分配置虚标自检指南。
溢价率与避坑决策树
拿到一台“高主频老CPU”的云服务器,别急着给钱。先把溢价率算清楚:(实际月付 - 同配置新U市场价)/ 同配置新U市场价。如果溢价超过 30%,基本可以断定你在为退役硬件付智商税。更狠的玩法是从 FinOps 角度直接量化:用同样的钱能不能买到 2 倍核数的 AMD EPYC 或 3 年新 Intel?能,说明这笔采购不该过审。
接着走我的三重取证决策树:
- Steal Time 抓恶邻
vmstat 1 10 | awk '{print $17}' # 看 st 列连续采样中 st 均值 > 5%,或出现 20% 以上突刺,说明宿主超卖严重,CPU 时间被邻居偷走,降配是唯一止损方案。
- 磁盘 Cache 断崖测试
dd if=/dev/zero of=/tmp/test bs=1M count=1024 conv=fdatasync第一次写缓存 1.5GB/s,第二次直落 150MB/s,缓存放水,典型的共享存储超卖。老配置 + 磁盘断崖 = 双重虚标。
- 真实跑分对比
curl -sL yabs.sh | bash单核 Geekbench 5 低于 700,但标称主频 3.5GHz?直接拿这份报告去找客服,要求按 4 核新 U 差价退款或迁移。
最后给一条硬规则:任何宣传页标称“高性能”,但售前不提供实测跑分链接的,一律按配置虚标处理。跑分只信自己,溢价只付新 U。
常见问题
如何识别云服务器CPU是否老旧?
用命令cat /proc/cpuinfo查看型号,比对发布年份;再用Steal Time监控,若steal高说明超卖,老旧CPU性能更差。
配置虚标如何验证真实性能?
用sysbench跑CPU测试,对比官方基准分;同时检查磁盘Cache和IOPS,老化磁盘会拉低真实跑分。