【跑分解读 01】别被商家的虚假宣传骗了!VPS 性能跑分全指南:YABS、Fio 测速与防坑秘籍
2026-08-14 · DevCraft Studio
买完 VPS 第一件事不是急着部署,而是先跑分。本文手把手教你用 YABS 一键测 CPU/内存/磁盘/带宽,用 Fio 看穿商家用缓存骗跑分的把戏,用 iperf3 区分独享与共享带宽,并揭秘 CPU 超分、OpenVZ 内存虚报的识别方法。
VPS 跑分与解读 · 共 2 篇
延伸阅读
更多相关攻略推荐:【内存技术 01】DDR4 还是 DDR5?2026 年内存涨价背景、独服、裸金属、VPS 到底差在哪:什么时候该升级、【VPS 硬件选型指南 (CPU 篇) 02】AMD EPYC vs、【VPS 硬件选型指南 (存储 篇) 04】不同业务场景的磁盘体感与、【VPS 进阶玩法精选 022】VPS 计费门道:预付、按比例、发票。
一、为什么要先跑分?商家写的参数信不得
你在商家页面看到的「4 核 CPU、8G 内存、NVMe 硬盘、1Gbps 带宽」,那是宣传口径,不是真实性能。虚拟化这层皮一裹,水就深了:同样是 4 核,可能 4 个人共用你这一颗物理核;同样是 NVMe,背后可能是网络存储被标成了 NVMe;同样是 1Gbps,晚上高峰可能掉到 100Mbps。所以新机器到手,第一件事永远是先跑个分,建立一条性能基线。以后机器变卡了,重跑一次对比就知道是商家偷偷降配,还是你自己的程序膨胀了。
二、YABS:一条命令做完全套体检
YABS(Yet Another Bench Script)是圈内公认最省事的跑分脚本,作者 masonr 把它做成了一键式,不需要装任何依赖,普通用户权限就能跑。它一口气测完磁盘(fio)、网络(iperf3)和 CPU/内存(Geekbench),最后还顺手帮你查了 IP 归属。
在 VPS 里直接粘贴这一行:
curl -sL yabs.sh | bash如果你不想让 Geekbench 把你的 CPU 型号和分数上传到公开页面(会生成一个 browser.geekbench.com 的链接,谁拿到链接都能看),可以加 -g 跳过它。带宽很小的 NAT 机建议加 -r 减少测速节点,或者 -i 直接不测网络,免得把宝贵的月流量跑光:
curl -sL yabs.sh | bash -s -- -gr常用参数记一下:-f 跳过磁盘、-i 跳过网络、-g 跳过 Geekbench、-r 缩减测速节点、-j 输出 JSON、-w 文件名 把结果存成文件、-s 网址 把结果发到第三方平台(比如 YABSdb)。
三、怎么读懂 YABS 的结果
跑完会打印好几段,新手重点看这三块:
- Basic System Information:基础信息,关注 CPU 型号、核心数、AES-NI 是否开启(影响加密性能)、VM Type(KVM / OpenVZ / LXC 等)。
- fio Disk Speed Tests:磁盘混合读写,按 4k、64k、512k、1m 四种块大小各测一轮,括号内是 IOPS。这里4k 这行最关键,因为它代表数据库、小文件这类真实负载;1m 那行是顺序大文件速度,代表备份、视频流。
- Geekbench:单核分反映「一个请求跑多快」,多核分主要用来验证你到底拿到了几颗真核心。多核分明显对不上核心数,往往就是超分了。
举个参考:本地 NVMe 的 4k 随机读 IOPS 能到十几万甚至更高;SATA SSD 大概几万;网络附加存储(比如某些大硬盘廉价机)可能只有一两万;机械盘则低到几百。如果你买的是「NVMe」却跑出几千 IOPS,先别急着骂商家——确认下是不是测速方式有问题(见下一节)。
四、Fio 深挖:识破商家用缓存骗跑分
很多人习惯用 dd 测速,这是大忌。dd 测的是顺序写,而且默认走操作系统页缓存(page cache),第二次跑直接读内存,跑出个几 GB/s 那是内存的速度,不是硬盘的。真正专业的工具是 fio(Flexible I/O Tester)。
关键在 --direct=1 这个参数:它用 O_DIRECT 方式打开文件,绕过内核页缓存,逼着数据真正落到磁盘上。如果不加它,一台 8G 内存的机器对 2G 文件做第二次读,数据直接从内存返回,fio 会报出上百万 IOPS——那个数字「是真的」,但它测的是你的内存,不是磁盘。所以任何靠谱的磁盘测试都必须带 --direct=1。
自己跑一组 4k 随机读写的命令(先装好 fio:apt install fio -y):
fio --name=randread4k --filename=./fio-test --size=2G --bs=4k \
--rw=randread --ioengine=libaio --iodepth=32 \
--direct=1 --runtime=60 --time_based --group_reporting把 --rw=randread 换成 randwrite 就是测随机写。几个要点:
--bs=4k:4KB 小块,模拟数据库页、日志这种真实小 IO,这才是真性能。--iodepth=32:队列深度 32,对应厂商标称的高并发场景。--size=2G:测试文件要大于路径上任何一层缓存,否则文件整块塞进宿主机缓存,分数被「熨平」虚高。机器内存越大,这个文件要越大。--ioengine=libaio:异步 IO,配合 iodepth 才能同时压 32 个请求;同步引擎(psync)下 iodepth 大于 1 没意义。
读懂输出看这一行:read: IOPS=184k, BW=719MiB/s。IOPS 是每秒读写次数,BW 是带宽。记住一句话:顺序读写看带宽(MB/s),随机小文件看 IOPS。商家最爱拿「顺序读写 1GB/s」当卖点,但对网站、数据库这种随机小 IO 密集的场景,4k 随机 IOPS 才说了算。
另外,廉价机常用大块 DRAM 缓存「作弊」,瞬间跑分很高,但缓存一满就原形毕露。所以最好不同时段连跑 3 次取中位数,凌晨和晚高峰各跑一次,差距动辄 20%~30% 的,多半是和邻居共享存储、争抢严重。
五、iperf3 测带宽:独享还是共享爆满?
YABS 里的网络段是连到公共 iperf3 服务器,结果会被对端节点限速干扰,参考价值有限。想认真测你这台机器的真实带宽,得自己搭一对端。借一台别的机器(或本地电脑)当服务器:
# 服务器端
iperf3 -s
# 客户端(被测 VPS)发起测试,测 30 秒
iperf3 -c 服务器IP -t 30
iperf3 -c 服务器IP -t 30 -R # -R 反向,测下载
iperf3 -c 服务器IP -t 30 -P 8 # -P 8 开 8 个并行流单流测的是「一个 TCP 连接的实际速度」,受窗口和延迟限制;并行流(-P 8)测的是链路总容量。判断独享还是共享,诀窍是分时段反复测:独享带宽曲线平稳,白天晚上都接近标称值;共享爆满的机器一到晚高峰(国内用户集中的时段)就断崖式下跌,因为整台宿主机几十个 VPS 在抢那一根物理网线。如果你的 1Gbps 端口实测经常只有一两百 Mbps,基本就是被超卖了。
六、CPU 与内存欺诈大揭秘
1. CPU 超分(overselling)。虚拟化允许一颗物理核切给多个 VPS 用,这就是超分。表现就是:你账单上写 4 核,但压测时分数上不去,或者一阵猛跑后突然变慢。识别方法——看 steal time(窃取时间):
vmstat 1看输出里的 st 列,如果它持续大于 5,说明宿主机超售严重,你的 CPU 时间被邻居抢走了。再看 /proc/cpuinfo 里的 model name 和 processor 数量,对照 Geekbench 多核分,就能大致判断核心是不是「注水」的。dmesg 里也能翻到一些硬件真实信息:
dmesg | grep -i cpu
cat /proc/cpuinfo | grep -c processor2. OpenVZ 内存虚报陷阱。老式 OpenVZ 架构下,商家常玩 burst RAM(突发内存)和 vswap 的文字游戏。你看到的「4G 内存」里,有一部分是只有空闲时才借给你的 burst,一旦母鸡紧张就被收回;vswap 则是拿磁盘当 swap 用,慢得要命。OpenVZ 没有独立内核,free -m 看到的数字常常虚高。一个土办法是进共享内存目录造文件,看内存是否真增长、会不会在配额内直接死机:
cd /dev/shm
dd if=/dev/zero of=./memtest bs=1M count=500
free -m
rm -f ./memtest如果承诺内存内造文件机器就挂,说明超售极其严重。更可靠的是看 OpenVZ 的 bean counter:cat /proc/user_beancounters,重点盯 privvmpages(保障内存)和各类 failcnt,failcnt 不为零说明资源已经被限到报错。
相比之下 KVM 是独立虚拟化,free -m 看到的就是真内存,也支持自己加 swap,选购时优先 KVM 更省心。
七、总结:这台机器到底值不值?
跑完分,按这个清单对账:4k 随机 IOPS 对不对得上「NVMe」的名号;晚高峰带宽有没有腰斩;CPU steal time 高不高;内存是不是真能全用。四项里有一项严重缩水,就该找客服换机或者干脆退了重买。记住,跑分不是为了晒分数,是为了在七天无理由退款期内确认自己没被坑。把钱花在刀刃上,比盯着宣传页的参数实在得多。
八、补充跑分:nench、UnixBench 与 Geekbench 5/6 怎么看
YABS 里的 Geekbench 只是开胃菜,想更全面地看 CPU,可以上几个互补工具。nench.sh 是另一个一键脚本,比 YABS 更轻量,只测 IPv4/IPv6 连通性、简单 CPU 算力和 dd 磁盘顺序速度,适合在超小内存的 NAT 机上快速过一遍:
curl -sL https://git.io/nench.sh | bashUnixBench 则是老牌的 CPU 综合跑分,专门测单核和多核的「整机能效」,对判断一颗物理核被切了几刀很有参考价值。它要在编译环境里跑,耗时也比 YABS 长:
wget https://github.com/kdlucas/byte-unixbench/archive/refs/heads/master.tar.gz
tar xf master.tar.gz && cd byte-unixbench-master/UnixBench
./Run重点看最后 System Benchmarks Index Score:单核跑分(1 parallel process)和全核跑分(N parallel processes)的比值,如果全核分不到单核分乘以核心数 的 60%,基本能确认超分。再说 Geekbench 5 和 6 的区别:Geekbench 5 是老版本,跨版本分数不能直接和 6 比;6 改了评分权重,单核普遍比 5 低一截,所以对比商家宣传图时要看清版本号,拿 GB5 的 1500 分去跟 GB6 的 2000 分比没有意义。
九、横向对比、长期监控与「跑分好看实际拉胯」
光看一家跑分没概念,横向对比才有意义。把两台机器(甚至同商家不同机房)的 YABS 结果并排放,重点比 4k 随机 IOPS 和晚高峰带宽,而不是被多核总分带节奏。社区还有 YABSdb 这类公开数据库,能按商家、机房、价格筛出别人的历史跑分,下单前先扫一眼,心里就有底。
跑分是「开箱快照」,而机器会悄悄劣化。想长期盯,可以装 netdata(轻量实时监控面板,自带 Web 界面),把 CPU steal time、磁盘延迟、带宽按天画成曲线,哪天曲线突然塌了,就是换机信号:
bash <(curl -Ss https://my-netdata.io/kickstart.sh)最后提醒一类坑:「跑分好看但实际拉胯」。有些商家给的「测试机」是顶配母鸡上单独划出来的,你跑出来分数爆表,真下单给的却是超售严重的普通母鸡;还有的用 LVM 缓存层、临时借邻居磁盘做「秒开」假象,过几天就原形毕露。应对办法就一句:在七天退款期内,分时段的、反复地、用真实业务负载去压——比如真部署你的网站、真跑一遍数据库导入,体验比任何分数都诚实。