首页主机资讯CentOS如何使用JMeter进行负载测试

CentOS如何使用JMeter进行负载测试

时间2025-12-12 17:07:04发布访客分类主机资讯浏览339
导读:在 CentOS 上使用 JMeter 进行负载测试 一 环境准备 安装 Java 8(JMeter 5.x 建议使用 Java 8 或 11): 安装命令:sudo yum install -y java-1.8.0-openjdk-...

在 CentOS 上使用 JMeter 进行负载测试

一 环境准备

  • 安装 Java 8(JMeter 5.x 建议使用 Java 8 或 11):
    • 安装命令:sudo yum install -y java-1.8.0-openjdk-devel
    • 验证:java -version
  • 创建专用用户(可选,提升安全性):sudo useradd -m -s /bin/bash jmeter
  • 调整文件句柄限制(避免高并发时报 “Too many open files”):
    • 临时:ulimit -n 65535
    • 永久:在 /etc/security/limits.conf 增加
      jmeter soft nofile 65535
      jmeter hard nofile 65535
      
  • 上传脚本工具(可选):sudo yum install -y lrzsz,使用 rz 上传 .jmx 脚本。

二 安装与验证 JMeter

  • 下载并解压(以 5.4.3 为例,可按需替换为最新稳定版):
    cd /opt
    sudo wget https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.4.3.tgz
    sudo tar -xzf apache-jmeter-5.4.3.tgz
    sudo ln -s apache-jmeter-5.4.3 jmeter
    
  • 配置环境变量(写入 /etc/profile~/.bashrc):
    export JMETER_HOME=/opt/jmeter
    export PATH=$JMETER_HOME/bin:$PATH
    
    使配置生效:source /etc/profile
  • 验证安装:jmeter -v(应输出版本号)

三 编写测试脚本

  • 在本地 JMeter GUI 创建测试计划:
    • 添加线程组:设置线程数(虚拟用户数)、Ramp-Up 时间、循环次数。
    • 添加取样器:如 HTTP Request(协议、域名/IP、端口、路径、参数、请求头、Body 等)。
    • 添加监听器:如 Summary ReportAggregate Report、View Results Tree(调试用,压测建议关闭)。
  • 保存为 test.jmx,上传到 CentOS(如使用 rz)。

四 执行测试与生成报告

  • 非 GUI 命令行执行(推荐):
    # 基本:生成 JTL 结果
    jmeter -n -t /opt/scripts/test.jmx -l /opt/results/results.jtl
    
    # 生成 HTML 报告(压测结束后)
    jmeter -g /opt/results/results.jtl -o /opt/results/report
    
    # 一步到位:执行并直接生成 HTML 报告
    jmeter -n -t /opt/scripts/test.jmx -l /opt/results/results.jtl -e -o /opt/results/report
    
  • 常用参数说明:
    • -n:非 GUI 模式
    • -t:指定 .jmx 脚本
    • -l:指定 .jtl 结果文件
    • -e:测试结束后生成 HTML 报告
    • -o:HTML 报告输出目录(必须为空)
  • 报告查看:将 report/index.html 下载到本地用浏览器打开,或在服务器上用 python -m http.server 8080 临时预览。

五 监控与分布式压测

  • 服务器资源监控(压测同时观察瓶颈):
    • top/htop:CPU、内存
    • vmstat 1:系统整体资源
    • netstat -sss -s:网络连接与丢包
    • 目标服务自身日志与监控(如 Nginx、应用日志、数据库慢查询)
  • 实时监控方案(可选):使用 InfluxDB + Grafana
    • JMeter 添加 Backend Listener(如 InfluxdbBackendListenerClient),将指标写入 InfluxDB
    • Grafana 配置 InfluxDB 数据源并导入 JMeter 仪表盘,实时查看 响应时间、吞吐量、错误率
  • 分布式压测(可选,提升并发能力):
    • 架构:一台 Master 控制多台 Slave
    • 在 Master 的 jmeter.properties
      remote_hosts=192.168.1.101:1099,192.168.1.102:1099
      server.rmi.localport=1099
      server.rmi.ssl.disable=true
      
    • 在各 Slave 启动:/opt/jmeter/bin/jmeter-server
    • 执行:jmeter -n -t test.jmx -R192.168.1.101:1099,192.168.1.102:1099
    • 如启用防火墙,放行 1099/TCPsudo firewall-cmd --permanent --add-port=1099/tcp & & sudo firewall-cmd --reload

六 常见问题与优化建议

  • 尽量使用非 GUI 模式压测;GUI 仅用于脚本编写与调试。
  • 监听器选择:压测关闭 View Results TreeGraph Results,仅保留 Summary/Aggregate Report 或写入 JTL,减少内存与 I/O 开销。
  • 合理设置线程数、Ramp-Up、循环次数与超时;先做小并发试跑,再逐步加压。
  • 避免测试数据污染:使用唯一标识、事务前清理/重置数据,或采用独立测试库。
  • 结果分析关注:Average/Median/90%/95%/99% Line、Throughput、Error %,结合服务器资源指标定位瓶颈(CPU、内存、I/O、网络、数据库锁等)。

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


若转载请注明出处: CentOS如何使用JMeter进行负载测试
本文地址: https://pptw.com/jishu/770676.html
如何在CentOS上使用JMeter进行自动化测试 CentOS系统下Kubernetes安装教程

游客 回复需填写必要信息