首页主机资讯JMeter在CentOS上的并发测试实践

JMeter在CentOS上的并发测试实践

时间2025-11-26 11:01:04发布访客分类主机资讯浏览449
导读: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
JMeter在CentOS上的常见问题及解决方法 CentOS JMeter插件使用指南

游客 回复需填写必要信息