首页主机资讯如何在Ubuntu上使用JMeter进行性能调优

如何在Ubuntu上使用JMeter进行性能调优

时间2025-12-22 23:14:05发布访客分类主机资讯浏览748
导读:Ubuntu上使用JMeter进行性能调优 一 环境准备与Java版本 安装 OpenJDK 11(Ubuntu 20.04/22.04 推荐 LTS 版本):sudo apt update && sudo apt ins...

Ubuntu上使用JMeter进行性能调优

一 环境准备与Java版本

  • 安装 OpenJDK 11(Ubuntu 20.04/22.04 推荐 LTS 版本):sudo apt update & & sudo apt install -y openjdk-11-jdk
  • 验证:java -version 应显示 11.x
  • 下载并解压 JMeter(示例为 5.6.3):wget https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.6.3.tgz & & tar -xzf apache-jmeter-5.6.3.tgz -C /opt
  • 配置环境变量(/etc/profile 或 ~/.bashrc):export JMETER_HOME=/opt/apache-jmeter-5.6.3;export PATH=$JMETER_HOME/bin:$PATH
  • 验证:jmeter -v 显示版本号;jmeter 可启动 GUI(仅用于调试)

二 关键配置优化

  • 启动脚本堆内存与GC(JMeter 安装目录/bin/jmeter):将 HEAP 调整为合适大小,建议 -Xms 与 -Xmx 等值,如:-Xms2g -Xmx2g;并添加 -XX:+UseG1GC;非调试加 -Djava.awt.headless=true。示例(在 jmeter 脚本中找到 HEAP 行并修改):HEAP=“-Xms2g -Xmx2g -XX:+UseG1GC”
  • jmeter.properties 核心项:
    • httpclient4.time_to_live=60000(连接最大存活时间,毫秒)
    • httpclient4.retrycount=1(失败重试次数,降低重复请求干扰)
    • jmeter.save.saveservice.response_data=false(避免保存响应体导致磁盘 I/O 过高)
    • summariser.interval=10(控制台摘要输出频率,秒)
  • HTTP 取样器:
    • Implementation 选 HttpClient4
    • 超时:Connect Timeout 5000 ms;Response Timeout 按业务设(如 10000 ms
    • 勾选 Use KeepAlive;仅在需要时勾选 Retrieve All Embedded Resources(会显著增加采样数)

三 执行与结果分析

  • 命令行非 GUI 执行(推荐):jmeter -n -t your_plan.jmx -l result.jtl
  • 生成 HTML 报告(JMeter ≥ 3.0):jmeter -g result.jtl -o ./report
  • 报告粒度(reportgenerator.properties):jmeter.reportgenerator.overall_granularity=1000(按 1 秒聚合,便于观察 TPS 抖动)
  • 控制台实时摘要:summariser.interval=10 可更频繁刷新吞吐、响应时间与错误率
  • 结果字段精简:仅保留必要字段(如 time、label、responseCode、success 等),减少 I/O 与内存占用

四 分布式压测扩展

  • 适用场景:单机线程/端口/CPU 成为瓶颈时,横向扩展压力机
  • Slave 节点:
    • jmeter.properties:server.rmi.ssl.disable=true
    • jmeter-server 启动前设置本机 IP:./jmeter-server -Djava.rmi.server.hostname=SLAVE_IP
  • Master 节点:
    • jmeter.properties:remote_hosts=IP1:PORT,IP2:PORT
    • 执行:jmeter -n -t plan.jmx -R IP1,IP2 -l result.jtl -e -o ./report
  • 注意:各节点 JMeter/插件版本保持一致;网络与防火墙开放 RMI 端口(默认 1099) 及 server_port

五 调优流程与排错要点

  • 基线先行:先用小并发跑通脚本,逐步拉高线程,观察吞吐(TPS)、P95/P99、错误率与 GC 行为,形成可复现基线
  • 逐步增压:每次仅变更一个变量(线程数/超时/连接池/重试/数据大小),便于定位瓶颈
  • 资源监控:
    • JMeter 侧用 JConsole 连到 ApacheJMeter.jar 进程,核对 -Xmx 是否生效、GC 频率与停顿
    • 系统侧用 top/vmstat/iostat 观察 CPU、内存、网络与磁盘 I/O,确认瓶颈在 SUT 还是 JMeter
  • 常见错误与修复:
    • java.lang.OutOfMemoryError:增大 -Xmx(如 2g→4g),并减少保存字段(关闭 response_data)、降低并发或改用分布式
    • 端口/连接耗尽:调大连接池与 KeepAlive 复用;必要时增加压力机或延长 ramp-up
    • 结果文件过大:改用 CSV 输出、精简字段、缩短测试时长或分场景拆分
  • 经验值(需结合业务验证):
    • 单机并发不宜过高,建议先控制在 ≤50 线程观察拐点,再决定是否分布式扩展
    • 连接与超时:KeepAlive 开启;Connect 5s、Response 按 SLA 设定(如 10s
    • 重试:压测阶段建议 1 次 或关闭,避免掩盖系统真实稳定性问题

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何在Ubuntu上使用JMeter进行性能调优
本文地址: https://pptw.com/jishu/777901.html
如何优化Debian cpustat监控策略 JMeter在Ubuntu上的并发测试如何设置

游客 回复需填写必要信息