在 CentOS 上用 JMeter 监控网络的可行方案
方案一 PerfMon 插件直连服务器采集网络 I/O(快速上手)
- 适用目标:在 JMeter 界面直接查看被测服务器的网络吞吐量、带宽占用等,配合压测实时观察瓶颈。
- 操作步骤
- 在 JMeter 客户端安装插件管理器(plugins-manager.jar 放到 JMETER_HOME/lib/ext),通过“选项 → Plugins Manager”安装 PerfMon (Servers Performance Monitoring) 插件。
- 在被测的 CentOS 服务器上部署 ServerAgent-2.2.3(需已安装 JDK),执行:
- chmod +x startAgent.sh
- ./startAgent.sh(默认监听 TCP/UDP 4444)
- 在 JMeter 测试计划添加监听器:jp@gc - PerfMon Metrics Collector → Add Row:
- Host/IP:被测服务器 IP
- Port:4444
- Metric to Collect:选择 Network I/O(如需同时看 CPU/磁盘,可新增多行)
- 运行压测,图表区即可看到网络指标曲线;若看不到数据,优先检查服务器防火墙是否放行 4444 端口。
- 提示
- ServerAgent 默认只采集服务器本机的 eth0 等网卡;如需指定网卡,可在启动参数中设置(如:./startAgent.sh --udp-port 4444 --tcp-port 4444 --iface eth0),或在较新版本中使用 PerfMon 的 Advanced 配置指定网卡。
- 分布式压测时,在被监控的每台服务器都部署并启动一个 ServerAgent 即可。
方案二 后端监听器 + InfluxDB + Grafana(长期存储与可视化)
- 适用目标:将 JMeter 测试结果(含事务、响应时间等)与服务器指标集中存储,用 Grafana 做统一可视化与告警。
- 操作步骤
- 在 JMeter 添加后端监听器 InfluxdbBackendListenerClient,配置 InfluxDB URL(如 http://:8086)、数据库名(如 jmeter)等。
- 在 CentOS 部署 InfluxDB(默认 8086 端口)并创建数据库(CREATE DATABASE jmeter)。
- 部署 Grafana,添加 InfluxDB 数据源(URL:http://:8086,Database:jmeter),导入 JMeter 或服务器监控看板模板,即可查看吞吐、响应时间与网络相关面板。
- 若需更丰富的服务器指标(CPU、内存、磁盘、网络接口等),可在服务器上部署 Telegraf 采集系统指标写入 InfluxDB,Grafana 一并展示。
- 提示
- 这种方式将“测试结果”和“服务器资源”解耦,便于历史回溯、对比分析与容量评估。
常见排错与优化
- 端口与连通性
- ServerAgent 默认 4444;InfluxDB 8086。在 CentOS 上放行端口示例:
- firewalld:firewall-cmd --add-port=4444/tcp --permanent && firewall-cmd --reload
- 或 nftables/filter 规则放行相应端口
- 可在 JMeter 机器用 nc/telnet 测试连通:nc -vz <服务器IP> 4444
- 看不到曲线
- 线程组循环次数改为永远,并用调度器设置运行时长,曲线才会持续绘制。
- 指标含义
- PerfMon 的 Network I/O 通常展示为各网卡字节数/包数随时间的变化,可据此计算吞吐与带宽占用(需结合网卡实际速率评估是否瓶颈)。
- 采集开销
- PerfMon 在大规模场景下有一定采集开销;若更关注长期稳定与多机统一监控,优先采用“后端监听器 + InfluxDB + Grafana/Telegraf”的组合。