JMeter在CentOS上的并发测试实践
导读:JMeter在CentOS上的并发测试实践 一 环境准备与安装 安装 Java 8(JMeter 5.x 要求 JDK 8+):sudo yum install -y java-1.8.0-openjdk-devel;验证:java -v...
JMeter在CentOS上的并发测试实践
一 环境准备与安装
- 安装 Java 8(JMeter 5.x 要求 JDK 8+):sudo yum install -y java-1.8.0-openjdk-devel;验证:java -version。
- 安装 JMeter(推荐手动解压):
- 下载并解压:wget https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.4.3.tgz & & tar -xzf apache-jmeter-5.4.3.tgz -C /opt/
- 建立软链:ln -sfn /opt/apache-jmeter-5.4.3 /opt/jmeter
- 配置环境变量(~/.bashrc 或 /etc/profile):
- export JMETER_HOME=/opt/jmeter
- export PATH=$JMETER_HOME/bin:$PATH
- 验证:jmeter -v。
- 建议:压测使用 非 GUI 模式 运行,节省资源并提升可模拟并发数。
二 单机并发测试步骤
- 准备脚本:在 Windows GUI 中调试并保存 .jmx,将脚本与 CSV 数据文件 上传至 CentOS(如 /opt/jmeter/scripts/)。
- 执行测试(非 GUI):
- 基本:jmeter -n -t /opt/jmeter/scripts/test.jmx -l /opt/jmeter/results/test.jtl
- 指定远程启动(如已配置分布式):jmeter -n -t test.jmx -R 192.168.1.101:1099,192.168.1.102:1099
- 生成报告:jmeter -g /opt/jmeter/results/test.jtl -e -o /opt/jmeter/results/report-2025-11-26/
- 注意:若 .jtl 最后一行不完整 导致报告生成报错,删除不完整行后再生成报告。
三 并发模型与关键配置
- 线程组参数:
- 线程数:并发用户数。
- Ramp-Up 时间(秒):全部线程启动的时长。
- 循环次数/调度器:控制持续时间。
- 常见误区:仅设置线程数与 Ramp-Up 并不能保证“同一时刻并发”。例如 20 线程 + 1 秒 Ramp-Up 往往是“1 秒内逐个启动”,并非严格并发。
- 实现“同一时刻并发”:在需要并发的请求前添加 同步定时器(Synchronizing Timer),设置 Number of Simulated Users to Group by(每组集结线程数,0 表示集结线程组全部线程),并设置 Timeout(超时毫秒,0 表示一直等待)。
- 持续压测时长:可用“大并发数量 × Ramp-up 时间 ≈ 总线程数”的思路,通过调度器设置持续时间,避免用循环次数破坏同步效果。
- 指定目标 TPS:使用 Constant Throughput Timer,设置 Target Throughput(目标吞吐,按每分钟/小时换算),并选择 Calculate Throughput based on(常用 this thread only)。
四 分布式压测与监控
- 适用场景:单机并发达不到目标或需要更大压力时。
- 基本步骤:
- 在所有 Slave 节点启动:/opt/jmeter/bin/jmeter-server
- 在 Master jmeter.properties 中配置:remote_hosts=slave1:1099,slave2:1099;如需关闭 SSL:server.rmi.ssl.disable=true
- Master 执行:jmeter -n -t test.jmx -R slave1:1099,slave2:1099
- 防火墙开放 1099/TCP(RMI):firewall-cmd --permanent --add-port=1099/tcp & & firewall-cmd --reload
- 一致性要求:主从机 JDK 版本一致、网络互通、时间同步。
- 监控:使用 PerfMon 插件监控 CPU、内存、I/O;压测前后做 单接口基准测试,观察 TPS、响应时间 与错误率,并迭代调优。
五 性能调优与常见问题
- JVM 调优:编辑 jmeter.sh(或 setenv.sh)设置堆大小,建议不超过物理内存的 2/3,如:HEAP=“-Xms2g -Xmx2g”;使用 64 位 JDK 才能分配更大堆。
- 系统资源:适当提升 文件句柄/网络端口 上限,避免连接耗尽。
- 监听器开销:压测禁用 查看结果树 等重监听器,仅保留必要结果输出(如 CSV)。
- 结果文件异常:若 .jtl 末行不完整 导致报告失败,删除不完整行后重新生成。
- 报告字段解读:关注 Average、Median、90%/95%/99% Line、Error%、Throughput(吞吐,默认 requests/second)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: JMeter在CentOS上的并发测试实践
本文地址: https://pptw.com/jishu/756491.html
