Linux系统服务器输入什么脚本测试服务器性能,带宽
Linux教程 2026-06-25 02:18 153
刚接触 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
  • 网络路由测试
  • 服务器性能诊断
Powered by ©智简魔方