· 技术备忘录 · 13 min read
VPS性能基准测试:如何科学评估你的服务器
别再只看Geekbench跑分了!教你用科学的方法测试VPS的CPU、内存、硬盘、网络性能,以及如何解读测试结果。
买了一台新VPS,第一件事是什么?
很多人的答案是:跑个分!
Geekbench 跑一跑,硬盘速度测一测,然后截个图发到论坛—— “看看我这台VPS性能怎么样?”
但问题是:跑分高,就一定好用吗?
今天,我想聊聊如何科学地测试VPS性能。 不只是跑个分,而是真正了解你的服务器到底怎么样。
为什么需要基准测试?
在开始之前,先搞清楚一个问题: 我们为什么要做基准测试?
原因一:验证商家宣传
商家说”高性能CPU”、“SSD硬盘”、“千兆带宽”—— 是真的吗?还是吹牛逼?
基准测试可以帮你验证商家的宣传是否属实。 如果差距太大,那你可能被坑了。
原因二:对比不同VPS
同样是 $50/年的VPS,搬瓦工和DMIT谁更快? RackNerd和VirMach谁更靠谱?
有了基准测试数据,你才能做客观的对比。 不然只能凭感觉,或者看别人的评测。
原因三:了解性能瓶颈
你的网站访问慢,到底是CPU不够用,还是硬盘太慢? 是内存不够,还是网络带宽瓶颈?
基准测试可以帮你找到性能瓶颈, 然后针对性地优化或升级。
原因四:建立性能基线
新买的VPS是什么性能? 用了半年之后,性能有没有下降? 邻居变多了,超售是不是更严重了?
有了基线数据,你才能发现变化。 不然性能下降了你都不知道。
测试前的准备
在开始测试之前,有几件事需要注意:
1. 选择合适的测试时间
- 不要在高峰期测试:晚高峰(晚上8-11点)网络可能拥堵,测出来的结果不准
- 最好在凌晨测试:凌晨用户少,服务器负载低,能测出最佳性能
- 多次测试取平均值:一次测试可能有偶然性,多测几次更准确
2. 关闭不必要的服务
测试之前,最好把正在运行的服务都停掉:
- Nginx/Apache
- MySQL/PostgreSQL
- Docker 容器
- 其他占用资源的进程
不然测试结果会受到干扰,测出来的不是真实性能。
3. 选择合适的测试工具
不同的测试目的,需要用不同的工具。 不要什么都用Geekbench,它不是万能的。
一、CPU性能测试
CPU是VPS的核心部件之一。 CPU性能直接影响到:
- 网站响应速度
- 编译代码的速度
- 数据处理能力
测试工具:Geekbench
Geekbench是最流行的跨平台基准测试工具。 它会测试CPU的单核和多核性能,给出一个综合分数。
安装和使用:
# 下载Geekbench 6
wget https://cdn.geekbench.com/Geekbench-6.2.1-Linux.tar.gz
# 解压
tar -zxvf Geekbench-6.2.1-Linux.tar.gz
cd Geekbench-6.2.1-Linux
# 运行测试
./geekbench6测试完成后,会生成一个链接,你可以在网页上查看详细结果。
测试工具:UnixBench
UnixBench是一个老牌的Linux基准测试工具。 它测试的项目更全面,包括:
- 系统调用开销
- 进程创建
- 管道吞吐
- 上下文切换
- 等等…
安装和使用:
# 安装依赖
apt install -y make gcc
# 下载UnixBench
wget https://github.com/kdlucas/byte-unixbench/archive/refs/heads/master.zip
unzip master.zip
cd byte-unixbench-master/UnixBench
# 运行测试
make
./Run测试工具:Sysbench
Sysbench是一个多线程的基准测试工具。 它可以测试CPU、内存、I/O等多个方面。
CPU测试:
# 安装sysbench
apt install -y sysbench
# CPU测试(单线程)
sysbench cpu --cpu-max-prime=20000 run
# CPU测试(多线程)
sysbench cpu --cpu-max-prime=20000 --threads=4 run如何解读结果?
| 分数 | 等级 | 说明 |
|---|---|---|
| Geekbench 6 单核 < 500 | 差 | 超售严重,不适合跑重要业务 |
| Geekbench 6 单核 500-800 | 一般 | 普通VPS水平,能满足基本需求 |
| Geekbench 6 单核 800-1200 | 良好 | 不错的VPS,建站没问题 |
| Geekbench 6 单核 1200+ | 优秀 | 高性能VPS,体验很好 |
注意:
- 单核性能比多核性能更重要(大多数应用单线程)
- 跑分只是参考,实际体验才是王道
- 不要为了跑分而跑分,跑分高不等于好用
二、内存性能测试
内存的速度和大小,直接影响到:
- 同时运行的程序数量
- 数据库的性能
- 大文件处理能力
测试工具:Sysbench
内存测试:
# 内存写入测试
sysbench memory --memory-block-size=1K --memory-total-size=10G run
# 内存读取测试
sysbench memory --memory-block-size=1K --memory-total-size=10G --memory-oper=read run测试工具:free 命令
最简单的内存查看工具就是 free:
# 查看内存使用情况
free -h输出示例:
total used free shared buff/cache available
Mem: 1.9Gi 234Mi 1.2Gi 1.0Mi 475Mi 1.5Gi
Swap: 2.0Gi 0B 2.0Gi注意事项:
- 不要只看
free,要看available(实际可用内存) - Linux会用空闲内存做缓存,所以
buff/cache高是正常的 - Swap不要频繁使用,否则会严重影响性能
如何解读结果?
| 内存大小 | 适合用途 |
|---|---|
| 512MB | 仅适合轻量用途(静态网站、代理等) |
| 1GB | 个人博客、小型网站 |
| 2GB | 中型网站、数据库、Docker |
| 4GB+ | 大型网站、多种服务同时运行 |
三、硬盘I/O性能测试
硬盘速度是最容易被忽略,但影响很大的一个指标。 硬盘慢的话,CPU再快也没用。
测试工具:dd 命令
最简单的硬盘测试工具:
# 写入测试
dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync
# 读取测试
dd if=test of=/dev/null bs=64k count=16k测试工具:fio
fio是更专业的I/O测试工具:
# 安装fio
apt install -y fio
# 随机写入测试
fio -name=randwrite -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=60 -iodepth=32 -rw=randwrite -direct=1
# 随机读取测试
fio -name=randread -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=60 -iodepth=32 -rw=randread -direct=1测试工具:ioping
ioping可以测试硬盘的延迟:
# 安装ioping
apt install -y ioping
# 测试延迟
ioping -c 10 /如何解读结果?
| 类型 | HDD | SSD | NVMe |
|---|---|---|---|
| 顺序读取 | 50-100 MB/s | 300-500 MB/s | 1000+ MB/s |
| 顺序写入 | 50-100 MB/s | 200-400 MB/s | 800+ MB/s |
| 随机读取 IOPS | 50-100 | 3000-10000 | 50000+ |
| 随机写入 IOPS | 50-100 | 3000-10000 | 50000+ |
| 延迟 | 5-10ms | 0.1-0.5ms | 0.05-0.1ms |
注意:
- VPS的硬盘I/O通常会有限速(防止邻居占用太多)
- 不要只看峰值速度,要看持续稳定速度
- 对于数据库类应用,随机I/O比顺序I/O更重要
四、网络性能测试
网络性能可能是VPS用户最关心的指标了。 毕竟,大部分人买VPS都是用来上网的。
测试工具:Speedtest-cli
最常用的网速测试工具:
# 安装speedtest-cli
apt install -y speedtest-cli
# 运行测试
speedtest-cli测试工具:wget/curl
下载测试更直接:
# 测试下载速度(找一个大文件下载)
wget -O /dev/null http://speedtest.tele2.net/100MB.zip测试工具:ping/mtr
测试延迟和丢包:
# ping测试
ping -c 100 your-server-ip
# mtr测试(更详细的路由分析)
apt install -y mtr
mtr --report your-server-ip三网测速脚本
如果想测试国内三网(电信、联通、移动)的速度,可以用一些现成的脚本:
# 三网测速脚本
wget -qO- https://github.com/oooldking/script/raw/master/superbench.sh | bash这个脚本会自动测试:
- 国内多个节点的下载速度
- 电信、联通、移动分别的速度
- 去程和回程路由
如何解读结果?
| 速度 | 等级 | 说明 |
|---|---|---|
| < 10 Mbps | 差 | 看视频都卡,基本没法用 |
| 10-50 Mbps | 一般 | 日常使用没问题,晚高峰可能卡 |
| 50-200 Mbps | 良好 | 速度很快,体验很好 |
| 200+ Mbps | 优秀 | 千兆带宽,非常快 |
注意:
- 晚高峰的速度比峰值速度更重要
- 延迟和丢包比带宽更影响体验
- 上传速度和下载速度同样重要(特别是传文件的时候)
五、综合测试脚本
如果你不想一个个手动测试,可以用一些综合测试脚本。
SuperBench
最流行的VPS综合测试脚本:
wget -qO- https://github.com/oooldking/script/raw/master/superbench.sh | bash测试内容包括:
- 系统信息(CPU、内存、硬盘、架构)
- 硬盘I/O测试(顺序读写)
- 国内节点下载速度测试
- 国际节点下载速度测试
- 去程路由追踪
LemonBench
另一个不错的综合测试脚本:
wget -qO- https://github.com/LemonBench/LemonBench/raw/master/LemonBench.sh | bashbench.sh
老牌的VPS测试脚本:
wget -qO- bench.sh | bash我的测试流程
我自己买了新VPS后,通常会按这个流程来测试:
第一步:基础信息查看
# 查看系统信息
uname -a
cat /etc/os-release
# 查看CPU信息
cat /proc/cpuinfo | grep "model name" | head -1
cat /proc/cpuinfo | grep "cpu cores" | head -1
# 查看内存信息
free -h
# 查看硬盘信息
df -h第二步:性能测试
# CPU测试(Geekbench)
# 这个比较耗时,可以放最后
# 内存测试
sysbench memory --memory-block-size=1K --memory-total-size=10G run
# 硬盘测试
dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync && rm -f test第三步:网络测试
# 三网测速
wget -qO- https://github.com/oooldking/script/raw/master/superbench.sh | bash第四步:稳定性测试
新VPS不要急着用,先烤机测试24小时:
# 压力测试(持续运行24小时)
# 观察会不会死机、重启、掉线
# 持续ping测试,观察丢包情况
ping -c 86400 your-server-ip > ping.log &避坑指南
坑一:只看跑分不看体验
Geekbench分数高 ≠ 实际体验好。 跑分是理想条件下的最大值,实际使用中可能完全不一样。
真正重要的是:
- 晚高峰卡不卡
- 稳不稳定
- 售后好不好
- 商家靠不靠谱
坑二:只测一次
一次测试结果可能有偶然性。 多测几次,不同时间段测,结果才更准确。
坑三:测试不规范
- 测试的时候还跑着其他服务
- 在高峰期测试网络
- 用不同的工具对比(没有可比性)
测试方法要一致,这样结果才有参考价值。
坑四:迷信跑分
跑分只是一个参考,不能代表全部。 一台VPS好不好,用了才知道。
我的建议: 先买一个月,实际用用看。 觉得好用再年付,不好用就换。 这才是最靠谱的测试方法。
总结
VPS性能测试是一门学问。 不是跑个Geekbench就完事了。
一份完整的性能测试,应该包括:
- CPU性能:单核、多核、多线程
- 内存性能:大小、速度、延迟
- 硬盘I/O:顺序读写、随机读写、IOPS、延迟
- 网络性能:带宽、延迟、丢包、三网速度
- 稳定性:长时间运行会不会出问题
记住:跑分是手段,不是目的。 我们测试的目的,是为了了解我们的服务器, 而不是为了在论坛上炫耀分数。
希望这篇文章能帮你更好地了解你的VPS。
买VPS,适合的才是最好的。