ESC

开始输入,可搜索发票、服务、域名、工单,以及 更多...

搜索... Ctrl+K
Linux 服务器

服务器性能测试教程2026:bench.sh、YABS、fio 结果解读

6 个步骤 8 分钟阅读 11 次阅读 0
本文目录

拿到一台新的 VPS 或独立服务器后,先做一次基准测试,可以确认 CPU、内存、磁盘和网络是否与预期一致,也能为日后排查性能问题留下对照数据。本文介绍四个最常用的测试工具,并重点讲解结果中每个数字代表什么、怎样判断好坏。

要点速览

  • bench.sh 适合对新服务器做快速体检,几分钟内即可输出系统信息、简单磁盘写入测试和多节点下载测速。
  • YABS 结合 fio 磁盘测试、iperf3 网络测试和 Geekbench CPU 跑分,是社区对比服务器性能最常用的标准。
  • 在 fio 结果中,4k 块大小的 IOPS 反映数据库和小文件读写能力,1m 块大小的吞吐量反映大文件顺序读写能力。
  • Geekbench 5 和 Geekbench 6 的评分基准不同,因此 Geekbench 分数只能在同一版本内比较。
  • IMIDC 提供多地区 VPS 与独立服务器,用户可在交付后用 bench.sh、YABS 和 fio 自行验证配置,结果与预期差距较大时可提交 7x24 工单。

适用环境 / 准备工作

  • 系统:Ubuntu 22.04 / 24.04、Debian 12、Rocky Linux 9、AlmaLinux 9
  • 已通过 SSH 以 root 或 sudo 用户登录
  • 磁盘剩余空间建议不少于 4 GB(fio 和 YABS 会生成测试文件)
  • 安装基础工具:
# Ubuntu / Debian
sudo apt update && sudo apt install -y curl wget fio
# Rocky / Alma 9
sudo dnf install -y curl wget fio

注意:测试脚本来自第三方开源项目,执行前可以先下载到本地用 less 查看内容。基准测试会短时间占满 CPU、磁盘和带宽,请避免在业务高峰期对生产服务器运行,也不要长时间反复跑。

操作步骤

步骤 1:bench.sh 快速体检

bench.sh 由开源作者 Teddysun 维护,几分钟内即可输出系统信息、简单磁盘写入测试和多节点下载测速:

wget -qO- bench.sh | bash
# 或
curl -Lso- bench.sh | bash

结果解读:

  • CPU Model / Cores / Frequency:CPU 型号、分配到的核心数和主频,确认与购买配置一致。
  • AES-NI / VM-x/AMD-V:AES-NI 为 Enabled 时,HTTPS、VPN 等加密场景性能更好;虚拟化指令是否透传决定能否在 VPS 内再嵌套虚拟化。
  • Virtualization:显示 KVM、Dedicated(独立服务器)等,帮你确认虚拟化类型。
  • I/O Speed:用 dd 顺序写入 1GB 的结果,只能粗略反映顺序写速度,SSD/NVMe 通常在数百 MB/s 到数 GB/s。
  • Speedtest 列表:到各测速节点的上传、下载和延迟。海外服务器到国内节点的成绩受线路影响很大,更应关注延迟稳定性而非单次峰值。

步骤 2:YABS 全面测试

YABS(Yet-Another-Bench-Script)包含 fio 磁盘测试、iperf3 网络测试和 Geekbench CPU 跑分,是社区对比服务器性能最常用的标准:

curl -sL https://yabs.sh | bash

常用参数:

# 跳过 iperf3 网络测试
curl -sL https://yabs.sh | bash -s -- -i
# 跳过 Geekbench,只测磁盘和网络
curl -sL https://yabs.sh | bash -s -- -g
# 仅跑 Geekbench 6(跳过磁盘与网络)
curl -sL https://yabs.sh | bash -s -- -f -i

fio 部分: YABS 会用 4k、64k、512k、1m 四种块大小做混合随机读写。

  • 4k 一栏看 IOPS:代表数据库、小文件读写能力。普通 SATA SSD 的 VPS 常见几千到几万 IOPS,NVMe 可达数万到数十万。
  • 1m 一栏看吞吐(MB/s 或 GB/s):代表大文件顺序读写能力,例如备份、视频文件。

iperf3 部分: 显示到全球多个公共 iperf 节点的发送(Send)与接收(Recv)速度。公共节点经常繁忙,个别节点数值偏低属正常,看整体趋势即可。

Geekbench 部分: 给出单核(Single Core)与多核(Multi Core)分数,并附带一个在线结果链接,可以与其他服务器直接对比。单核分数影响 PHP、Node.js 等单线程应用的响应速度;多核分数影响编译、转码和并发处理。

步骤 3:单独使用 fio 精准测试磁盘

想测试特定场景时,直接用 fio 更可控。下面测试 4K 随机读写(模拟数据库负载):

fio --name=rand4k --filename=/root/fio.test --size=1G \
    --direct=1 --ioengine=libaio --rw=randrw --rwmixread=70 \
    --bs=4k --iodepth=64 --numjobs=2 --runtime=60 --time_based \
    --group_reporting

测试 1M 顺序读:

fio --name=seq1m --filename=/root/fio.test --size=1G \
    --direct=1 --ioengine=libaio --rw=read \
    --bs=1M --iodepth=16 --numjobs=1 --runtime=30 --time_based \
    --group_reporting

测试结束后删除测试文件:

rm -f /root/fio.test

重点关注:

  • IOPS=:每秒读写次数,越高越好。
  • BW=:带宽吞吐量。
  • clat 延迟中的平均值和 99.00th 百分位:延迟越低越稳定,若 99% 延迟远高于平均值,说明磁盘存在抖动。

--direct=1 可绕过系统缓存,避免内存缓存导致结果虚高。

步骤 4:记录并保存结果

建议把输出保存下来,方便日后对比:

curl -sL https://yabs.sh | bash 2>&1 | tee ~/yabs-$(date +%F).txt

常见问题 FAQ

bench.sh 的 I/O 速度很高,为什么网站还是慢?

dd 顺序写只代表大文件写入能力,网站和数据库更依赖 4K 随机读写与延迟。此外,网站速度还受线路、程序和缓存配置影响,应结合 fio 4K 结果和网络测试综合判断。

测出的下载速度低于购买的带宽?

公共测速节点可能拥堵,跨国测速还受对端网络限制。建议换几个时段、多个节点测试,或在本地电脑用 iperf3 直接对测。如果持续明显偏低,可提交工单并附上测试结果和 MTR 路由。

VPS 每次跑分结果都不一样正常吗?

正常。虚拟化环境中 CPU 和磁盘由多个实例共享,存在一定波动。只要多次结果处于相近区间即可;如果某次大幅下降,可以过段时间复测。

Geekbench 分数在不同版本间能对比吗?

不能。Geekbench 5 和 Geekbench 6 的评分基准不同,只能在同一版本内比较。YABS 当前默认使用 Geekbench 6。

总结

bench.sh 适合快速体检,YABS 适合全面横向对比,fio 适合针对性测试磁盘,三者结合就能清楚掌握一台服务器的真实性能。IMIDC 提供多地区 VPS 与独立服务器,交付后你可以用本文方法自行验证配置;如果测试结果与预期差距较大,欢迎通过客户中心提交 7x24 工单,附上测试输出,技术团队会协助排查。

相关产品

相关阅读

这篇文章有帮助吗?

相关教程