Linux系统服务器输入什么脚本测试服务器性能,带宽
Linux教程
2026-06-25 02:18
155
刚接触 Linux 服务器的朋友经常想知道:我这台服务器性能够不够?
带宽跑满没有?
网络路线稳不稳定?
本文总结几款免费且常用的测试脚本和命令,你只需要根据关键词把脚本输入终端,就能拿到直观结果。
读完你会掌握 sysbench 测 CPU/内存、iperf3 测带宽、mtr 和 traceroute 看路由路线,以及 speedtest-cli 测实际下载速度的方法。
准备工作:安装必要工具
大多数 Linux 发行版默认不带这些测试软件,需要先安装。
使用包管理器安装即可:
# Debian/Ubuntu 系统
sudo apt update
sudo apt install sysbench iperf3 mtr-tiny speedtest-cli
# CentOS/RHEL 系列
sudo yum install epel-release
sudo yum install sysbench iperf3 mtr speedtest-cli
如果安装 speedtest-cli 失败,可以用 pip 安装:pip install speedtest-cli。
注意部分云服务器默认只开放 80/443 端口,iperf3 测试需要额外开放端口(默认 5201),后面会讲如何绕过。
性能测试:用 sysbench 压测 CPU 和内存
sysbench 是服务器性能测试的经典工具,支持 CPU、内存、磁盘 I/O 和数据库压测。
对新手最常用的是 CPU 和内存测试。
测试 CPU 性能(单线程)
sysbench cpu run
输出中看 events per second(每秒事件数),数值越大 CPU 单核性能越好。
测试 CPU 多线程全核性能
sysbench cpu --threads=4 run # 4 改成你的 CPU 核数
对比单线程结果,多线程倍率是否接近核数,可以判断 CPU 是否降频或资源受限。
测试内存读写速度
sysbench memory run
重点看 Total transferred 和 Transfer rate,单位为 MiB/sec。
不同类型云服务器内存带宽差异很大,拿这个数据跟供应商标称对比。
带宽测试:用 iperf3 测实际吞吐量
iperf3 需要成对使用:一台做服务端,另一台做客户端。
如果你想测试从服务器到外网的带宽,可以找一个附近有公网 iperf3 服务的节点(例如许多 VPS 商家提供公共测试点),或者自己搭建。
服务端启动(在你要测试的目标服务器上执行)
iperf3 -s
默认监听 5201 端口,记得在安全组/防火墙放行此端口。
客户端测速(在本地或另一台服务器执行)
iperf3 -c 服务器IP
结果会显示带宽(bits/sec)、丢包率和抖动。
如果带宽远小于标称值,检查 CPU 占用、网卡队列或防火墙限速。
避坑提醒:很多云服务器规定带宽上限,iperf3 单线程可能跑不满,可以加 -P 4 开启 4 个并行流:
iperf3 -c 服务器IP -P 4
另外 iperf3 测试的是 TCP 吞吐,不代表实际下载速度(有协议开销),不过作为带宽参考已足够。
网络路线测试:用 mtr 和 traceroute 看路由
路由轨迹(traceroute) 能显示数据包经过的每一跳 IP 和延迟。
traceroute 目标IP或域名
如果某跳出现 * * * 或延迟突增,可能那段线路有问题。
更直观的连续监测(mtr):结合 ping 和 traceroute,实时显示每一跳的丢包率和延迟变化。
mtr -r -c 10 目标IP或域名
-r 表示报告模式,-c 10 发送 10 个包。
重点关注最后几跳的丢包率——如果目标 IP 丢包高,说明线路不稳定;
中间跳偶尔丢包可能是节点 ICMP 限速,不用太担心。
测网站实际下载速度(speedtest-cli)
speedtest-cli
脚本会自动选择最近的测试节点,输出下载/上传速度和延迟。
注意该工具依赖 Python,且部分机房屏蔽了 speedtest 服务器导致失败,这时可以改用 curl -o /dev/null 测速站点文件 的方式,例如用 curl -s http://speedtest.tele2.net/100MB.zip -o /dev/null 计算速度。
常见问题解答
Q:iperf3 服务端提示“bind failed: Address already in use”怎么办?
A:可能是上次进程未退出,先用 pkill iperf3 杀掉进程,再重试。如果想换端口,服务端加 -p 端口,客户端对应加 -p 端口。
Q:mtr 显示所有跳都 100% 丢包怎么办?
A:有些运营商或机房对 ICMP 做了限速或屏蔽,导致 mtr 结果异常。可以改用 mtr -u 用 UDP 测试,或者直接 ping 目标看是否通。
Q:sysbench 测试磁盘性能会影响业务吗?
A:磁盘测试 (sysbench fileio) 会大量读写磁盘,建议在业务低峰期跑,或者先卸载数据盘再测。本文未详细介绍磁盘测试是因为新手容易误伤数据,如果你需要测磁盘,请使用 --file-test-mode=seqwr 并指定一个临时文件路径。
效果验证与下一步
把上面脚本跑完后,你至少得到三组数据:CPU 每秒事件数、带宽 bps 值、路由延迟/丢包率。
拿这些数据跟服务器标称配置或同类型机器对比,就能判断是否存在性能瓶颈。
例如 CPU 单线程事件数远低于同型号 CPU 的正常范围(可百度搜索“sysbench CPU 正常值”),可能是超售或 CPU 降频;
带宽只有标称的一半,可能是线路限速或实测协议差异。
如果发现网络路由不稳定,可以尝试更换服务商或配置 BGP 路由优化。
进一步学习建议:用 vmstat、top 监控实时资源,或安装 htop 更直观。
下篇文章会专门讲如何用 Netdata 搭建实时监控面板,欢迎持续关注。
标签:
- Linux服务器测试
- sysbench
- iperf3
- mtr
- 网络路由测试
- 服务器性能诊断