服务器速度测试四大维度
| 🧮 CPU算力:sysbench/Geekbench/UnixBench | 💾 磁盘IO:dd/fio/sysbench fileio |
| 🌐 网络带宽:iperf3/speedtest-cli/多节点Ping | ⚡ Web响应:TTFB/并发压测/全球拨测 |
一、Ping延迟和Web响应速度,是你最先该测的两件事
服务器速度测试里最直观的就是网络——你的用户打开网站快不快,90%取决于服务器到你用户之间的网络延迟和带宽。
多地Ping测试:一台服务器在广东机房Ping值5ms,不代表北京用户也快。用多节点Ping工具能看到全国乃至全球不同地区到你服务器的延迟分布。
HTTP测速的意义:Ping只测ICMP延迟,但用户访问网站走的是HTTP/TCP协议,中间可能经过CDN、负载均衡、反向代理。同一个服务器,Ping延迟20ms,但TTFB(首字节响应时间)可能高达500ms——这说明服务器处理请求慢,不是网络的问题。用ITDog或拨测的HTTP测速功能,能同时看到DNS解析时间、TCP连接时间、SSL握手时间、首字节时间四个分段的耗时,快速定位瓶颈在哪一段。
怎么看HTTP测速结果:DNS解析超过100ms说明DNS服务商不行,考虑换DNS;SSL握手超过200ms说明证书验证慢或服务器CPU弱;TTFB超过300ms说明后端处理慢,需要优化代码或数据库查询。
二、CPU算力:同一个"4核"差了三倍不止
云厂商写的"4核vCPU"可能是Intel Xeon Gold 6148(2017年发布),也可能是AMD EPYC 9R14(2023年发布),单核性能可以差2-3倍。不看具体型号只看核心数,等于盲买。
sysbench CPU测试:最轻量的CPU基准测试工具,一条命令出结果。
# 安装sysbench(CentOS/Ubuntu通用)apt install sysbench # Ubuntu/Debianyum install sysbench # CentOS/Rocky# 单核CPU测试(计算20000以内的素数)sysbench cpu --threads=1 --cpu-max-prime=20000 run# 多核CPU测试(测试所有核心)sysbench cpu --threads=4 --cpu-max-prime=20000 run# 结果解读:看 total time 和 events per second# events per second 越高越好,单核通常500-1500
Geekbench:比sysbench更专业的跨平台跑分工具,有全球数据库可以做横向对比。安装后运行 geekbench6,几分钟后会生成一个在线链接,能看到单核/多核分数以及和同型号CPU的排名对比。Geekbench的单核分数对网站性能的参考价值最大——大多数Web应用(PHP/Node.js/Python)的请求处理是单线程的,单核强比多核多更有意义。

UnixBench:老牌综合跑分工具,测试项覆盖了Dhrystone(整数运算)、Whetstone(浮点运算)、文件拷贝、管道吞吐、进程创建等,最终给出一个综合分数。适合买VPS时做横向对比——同一家厂商的不同机房、同一配置的不同厂商,跑完UnixBench对比分数一目了然。
CPU测试参考值(sysbench单核 events/sec):Intel Xeon E5-2680 v4(老旧机型)约400-600;Intel Xeon Gold 6248约800-1000;AMD EPYC 7R13约1000-1300;最新AMD EPYC Genoa约1300-1800。如果买到手的"高性能云服务器"单核只有300-400,大概率是严重超售的共享CPU。
三、磁盘IO:SSD和SSD之间可能差10倍
云厂商都写"SSD云盘",但SSD也分三六九等:本地NVMe SSD > 云SSD > 高效云盘 > 普通云盘。实际随机读写性能可以差10倍以上。磁盘IO直接影响数据库查询速度、文件读写、页面缓存效率。
dd命令快速摸底(顺序读写):
# 写入测试(写1GB文件,测写入速度)dd if=/dev/zero of=./test bs=64k count=16k conv=fdatasync# 读取测试(清缓存后读刚才的1GB文件)echo 3 > /proc/sys/vm/drop_cachesdd if=./test of=/dev/null bs=64k count=16k# 清理测试文件rm -f ./test# 参考值:NVMe SSD 写1.5-3GB/s,云SSD 写150-500MB/s,高效云盘 写50-150MB/s
fio专业随机读写测试:dd只能测顺序读写,但数据库和网站真正吃的是随机读写(4K小块随机读写)。fio是专业级的磁盘性能测试工具:
# 4K随机读(模拟数据库查询场景)fio --name=randread --ioengine=libaio --direct=1 --bs=4k \--numjobs=1 --size=1G --runtime=30 --time_based \--rw=randread --group_reporting# 4K随机写(模拟日志写入场景)fio --name=randwrite --ioengine=libaio --direct=1 --bs=4k \--numjobs=1 --size=1G --runtime=30 --time_based \--rw=randwrite --group_reporting# 关键指标:IOPS(每秒读写次数)和延迟(latency)# NVMe SSD 4K随机读 100K-500K IOPS,云SSD 5K-30K IOPS
⚠️ 云服务器测磁盘的注意事项:很多云厂商的SSD云盘有IOPS和吞吐量的"基线+突发"机制,刚买的时候可能跑得很高(突发性能),持续跑30秒以上会掉到基线水平。fio测试至少要跑60秒才能看到稳定值,不要被前10秒的突发数据迷惑。

四、网络带宽:5Mbps到底能跑满吗
云厂商标注的带宽(如5Mbps)是出网带宽上限,实际能不能跑满取决于机房网络质量和对端带宽。测试网络带宽分两个维度:本机到公网的带宽、本机到你用户所在地区的实际传输速度。
speedtest-cli:最方便的单机测速工具,自动选择最近的测速节点,输出下载/上传速度和延迟。
# 安装apt install speedtest-cli # Debian/Ubuntupip install speedtest-cli # 通用pip方式# 测速speedtest-cli --simple# 指定节点(先列出节点,再指定ID测试)speedtest-cli --list | grep Chinaspeedtest-cli --server 节点ID
iperf3:两台服务器之间的点对点带宽测试。如果你有A和B两台服务器,想知道它们之间的实际传输速度,用iperf3最准确:
# 服务器B上启动iperf3服务端iperf3 -s# 服务器A上发起测试(测试A到B的上传带宽)iperf3 -c 服务器B的IP -t 30 -P 4# -t 30: 测试30秒 -P 4: 4个并发流# 反向测试(测下载带宽)iperf3 -c 服务器B的IP -t 30 -P 4 -R
五、一键综合测试脚本:不用记命令,一条搞定
社区里有很多封装好的一键测试脚本,一条命令跑完CPU、内存、磁盘、网络全套指标,适合快速摸底:
LemonBench跑完会输出什么:CPU型号和频率 → UnixBench单核/多核分数 → 磁盘IO(三次dd测试取平均) → 内存读写速度 → 全国三网Ping延迟 → 回程路由追踪。一屏看完服务器的全部核心指标,买VPS对比不同商家时特别实用。
六、网站层面的速度测试:从用户视角看服务器快不快
服务器自身性能再好,用户访问慢也没用。网站层面的速度测试是从真实用户视角出发,模拟浏览器加载完整页面的过程。

WebPageTest是最推荐的免费深度测试工具。选择离你用户最近的测试节点,它会给出完整的页面加载瀑布图,每一行是一个请求(HTML/CSS/JS/图片/字体等),精确到DNS解析、TCP连接、SSL握手、首字节、内容下载各自耗时多少毫秒。一眼就能看出来是服务器响应慢还是某个第三方资源拖慢了页面。
压测并发能力:上面的工具都是单次访问测试,如果你想知道服务器能撑多少并发用户,需要用压测工具:
# Apache Bench(ab)简单压测:100并发,1000总请求ab -n 1000 -c 100 https://你的域名/# wrk 更专业的压测:4线程,100连接,持续30秒wrk -t4 -c100 -d30s https://你的域名/# 结果看:Requests/sec(每秒处理请求数)、平均延迟、P99延迟
⚠️ 压测注意事项:不要在生产环境高峰期压测,会影响到真实用户。也不要对别人的网站压测,这属于攻击行为。压测时CPU和带宽占用会飙升,部分云厂商可能触发DDoS防护自动封IP,建议先用小并发(-c 10)试一下。
七、买了服务器跑完测试,怎么判断值不值
CPU及格线
sysbench单核 events/sec 低于500 → 大概率是老硬件或严重超售,跑动态网站会比较吃力。Geekbench单核低于800 → 同价位可以找到更好的选择。
磁盘及格线
dd顺序写低于100MB/s → 磁盘性能拖后腿,数据库查询会明显变慢。fio 4K随机读 IOPS 低于3000 → 跑MySQL/PostgreSQL会很痛苦。
网络及格线
speedtest-cli下载速度达不到标注带宽的80% → 联系客服或者换机房。多节点Ping测试中超过30%的节点超时或超500ms → 机房网络质量差,不适合做面向全国用户的网站。
Web响应及格线
TTFB(首字节时间)超过500ms → 服务器端处理慢。国内用户访问TTFB超过200ms → 考虑加CDN或换离用户更近的机房。注意:TTFB测的是"空页面"还是"完整页面",差异很大,空页面TTFB应该在100ms以内。
八、服务器用了半年变慢了,怎么排查
服务器刚买时速度飞快,半年后越来越慢——这比新买时测试更常见。排查顺序:
- 先看资源占用:
top或htop看CPU负载,free -h看内存,df -h看磁盘。CPU长期跑满80%以上、内存swap使用超过200MB、磁盘使用率超过85%——这三个信号说明资源不够用了。 - 再跑一次基准测试:用sysbench/fio/speedtest-cli重新跑一遍,跟刚买时的数据对比。如果CPU和磁盘分数明显下降,可能是母机超售更严重了或者磁盘磨损。
- 查数据库慢查询:MySQL跑
SHOW FULL PROCESSLIST;,看有没有长时间运行的查询。很多服务器"变慢"本质上是数据量增长后索引失效导致的。 - 查带宽是否被占满:
iftop或nload实时看网络流量,如果带宽长期跑满,加带宽或者排查是否有异常流量。
服务器速度测试不是一次性的。新买时跑一遍做基准记录,之后每季度或网站流量有明显变化时再跑一次,对比数据才能知道是真的变慢了还是业务量上来了。把每次的sysbench CPU分数、fio IOPS、speedtest带宽、TTFB都记录在一张表里,出了问题不用猜,直接看数据。
