在Linux系统中,网络测试和压力测试是评估网络性能、排查网络故障的核心操作,通过合适的工具可以快速获取网络的带宽、延迟、丢包率等关键指标,也能模拟高负载场景验证网络的承载能力。

常用网络测试和压力测试工具介绍
1. ping工具
ping是Linux系统自带的网络连通性测试工具,基于ICMP协议工作,主要用于测试目标主机是否可达,以及统计网络往返延迟和丢包情况,适合做基础的网络连通性排查。
2. iperf3工具
iperf3是一款专业的网络带宽测试工具,支持TCP、UDP等多种协议,可以测试网络的最大吞吐量、延迟、抖动等指标,是网络压力测试常用的工具之一,分为服务端和客户端两部分。
3. netperf工具
netperf同样是用于网络性能测试的工具,支持多种网络协议和测试模式,能够测试不同场景下的网络传输性能,适合做更细化的网络性能评估。
工具安装方法
大部分Linux发行版的官方软件源都包含这些工具,可以通过包管理器直接安装:
- Debian/Ubuntu系统安装命令:
# 安装iperf3 sudo apt update sudo apt install iperf3 -y # 安装netperf sudo apt install netperf -y # ping工具默认已安装,无需额外操作
- CentOS/RHEL系统安装命令:
# 安装iperf3 sudo yum install epel-release -y sudo yum install iperf3 -y # 安装netperf sudo yum install netperf -y
具体测试操作示例
1. 使用ping做基础连通性测试
测试本地到目标主机的连通性,发送10个ICMP包,命令如下:
# 测试到192.168.0.1的连通性,发送10个包 ping -c 10 192.168.0.1
执行后会输出每个包的往返时间,最后统计丢包率和平均延迟,若丢包率为0且延迟稳定,说明基础连通性正常。
2. 使用iperf3做带宽压力测试
首先在被测服务端启动iperf3服务端,监听默认端口5201:
# 启动iperf3服务端,后台运行 iperf3 -s -D
然后在客户端执行测试命令,模拟TCP协议的带宽压力测试,测试时间30秒:
# 客户端连接服务端192.168.0.1,测试TCP带宽,时长30秒 iperf3 -c 192.168.0.1 -t 30
若需要测试UDP协议的性能,可以加上-u参数,同时可以指定带宽上限模拟压力场景:
# 测试UDP带宽,指定带宽为100M,测试时间20秒 iperf3 -c 192.168.0.1 -u -b 100M -t 20
3. 使用netperf做精细化性能测试
先启动netperf服务端:
# 启动netperf服务端 netserver
客户端测试TCP批量传输性能,测试时间20秒:
# 测试TCP批量传输性能,目标服务端192.168.0.1 netperf -H 192.168.0.1 -t TCP_STREAM -l 20
测试注意事项
- 压力测试前需要确认测试环境,避免测试流量影响正常业务运行,尽量在业务低峰期或者独立的测试网络中进行。
- 测试时需要关闭服务端和客户端的其他占用网络资源的进程,保证测试结果的准确性。
- 多次测试取平均值,避免单次测试的偶然性导致结果偏差。
- 若测试公网环境,需要注意测试带宽不要超过公网出口的实际限制,避免触发运营商的流量限制策略。
测试结果解读
以iperf3的TCP测试结果为例,核心指标说明如下:
| 指标名称 | 含义 | 参考标准 |
|---|---|---|
| Bandwidth | 测试得到的网络带宽 | 接近网络硬件的理论带宽说明性能正常 |
| Retr | TCP重传次数 | 数值为0或极小说明网络稳定性好 |
| Cwnd | TCP拥塞窗口大小 | 数值稳定说明网络无拥塞 |
如果测试过程中丢包率过高、带宽远低于预期,需要排查网卡配置、交换机端口、网线等硬件问题,或者检查是否存在网络策略限制。