首页主机资讯如何利用JMeter进行CentOS压力测试

如何利用JMeter进行CentOS压力测试

时间2025-11-26 11:06:05发布访客分类主机资讯浏览681
导读:在CentOS上使用JMeter进行压力测试 一 环境准备与安装 安装 Java 8(JMeter 5.x 要求 Java 8+): 执行:sudo yum install -y java-1.8.0-openjdk-devel 配置环...

在CentOS上使用JMeter进行压力测试

一 环境准备与安装

  • 安装 Java 8(JMeter 5.x 要求 Java 8+):
    • 执行:sudo yum install -y java-1.8.0-openjdk-devel
    • 配置环境变量(写入 /etc/profile):
      • export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
      • export PATH=$JAVA_HOME/bin:$PATH
    • 使配置生效:source /etc/profile
    • 验证:java -version
  • 安装 JMeter(以 5.4.3 为例):
    • 下载:wget https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.4.3.tgz
    • 解压:tar -zxvf apache-jmeter-5.4.3.tgz -C /usr/local/
    • 配置环境变量(写入 ~/.bashrc/etc/profile):
      • export JMETER_HOME=/usr/local/apache-jmeter-5.4.3
      • export PATH=$JMETER_HOME/bin:$PATH
    • 使配置生效:source ~/.bashrc
    • 验证:jmeter -v
  • 上传脚本与数据文件(可选):
    • 安装 lrzsz:yum install -y lrzsz
    • 上传:rz,下载:sz < 文件>

二 编写与执行测试

  • 脚本编写建议:在 Windows 的 JMeter GUI 中创建测试计划(如 test.jmx),包含线程组、HTTP 请求、CSV Data Set Config(如有参数化)、以及必要的断言与监听器,保存后将 .jmx 上传至 CentOS。
  • 非 GUI 执行(推荐):
    • 基本命令:
      • jmeter -n -t /path/to/test.jmx -l /path/to/results.jtl
      • 参数说明:-n 非 GUI;-t 指定脚本;-l 指定结果文件(JTL/CSV)。
    • 生成 HTML 报告(压测结束后):
      • jmeter -g /path/to/results.jtl -o /path/to/report
      • 报告目录中的 index.html 可用浏览器查看。
    • 常用增强参数(按需添加):
      • -e -o < 报告目录> :压测完成后直接生成 HTML 报告
      • -J< 变量名> =< 值> :覆盖测试计划中的用户定义变量(本地属性)
      • -G< 变量名> =< 值> :设置远程属性(分布式/远程执行时使用)
      • -R< host1:1099,host2:1099> :指定远程压力机(替代在 jmeter.properties 中配置 remote_hosts)。

三 分布式压测

  • 架构说明:一台 Master/Controller 控制多台 Slave/Agent 发压,统一汇总结果。
  • 配置步骤:
    • 在所有 Agent 上启动服务:
      • cd $JMETER_HOME/bin
      • 建议:nohup ./jmeter-server -Djava.rmi.server.hostname=< 本机IP> &
    • 在 Master 的 jmeter.properties 中配置:
      • remote_hosts=< agent1_ip> :1099,< agent2_ip> :1099
      • server.rmi.localport=1099
      • server.rmi.ssl.disable=true(如无 SSL 需求)
    • 在 Master 执行(两种方式任选其一):
      • 使用配置文件中的 remote_hosts:jmeter -n -t test.jmx -l results.jtl -e -o report
      • 命令行指定远程机:-R< agent1_ip> :1099,< agent2_ip> :1099
  • 防火墙:开放 1099/TCP(RMI)以及可能的端口段,例如:
    • sudo firewall-cmd --permanent --add-port=1099/tcp
    • sudo firewall-cmd --reload
  • 运行特性:多台 Agent 的 TPS 近似为总和平均响应时间为各 Agent 的平均值(用于横向扩容估算)。

四 结果分析与监控

  • 本地分析:
    • .jtl 下载到本地,在 JMeter GUI 的 聚合报告/Summary Report 中查看 Throughput(TPS)Average95%/99% LineError % 等关键指标;或使用 jmeter -g 生成 HTML 报告 便于分享与归档。
  • 实时监控(可选方案):
    • 使用 InfluxDB + Grafana 搭建实时可视化看板:JMeter 写入指标至 InfluxDB(HTTP 8086 端口),Grafana 从 InfluxDB 查询并展示曲线(适合长时间压测与容量评估)。

五 性能与安全注意事项

  • 运行模式:压测务必使用 非 GUI 模式,GUI 仅用于脚本开发与调试;必要时通过 -J/-G 参数化线程数、Ramp-Up、循环次数等,便于不同场景快速复用脚本。
  • JVM 与系统调优(示例原则):
    • $JMETER_HOME/bin/jmeter 或启动脚本中调整堆内存(如 -Xms/-Xmx),一般不超过物理内存的 2/3;结合压测并发与机器规格合理设置。
    • 提升系统承载能力:调高 文件描述符/套接字 限制(如 ulimit -n)、优化 网络/内核参数、以及被压测端(如 Nginx/应用服务器)的最大连接数与超时配置,避免瓶颈出现在压测机或被压测服务侧。
  • 网络与合规:
    • 建议在 内网 执行压测,避免对公网/生产链路造成干扰;压测前完成 变更报备目标系统容量评估,压测后及时 清理与回滚 临时配置。

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


若转载请注明出处: 如何利用JMeter进行CentOS压力测试
本文地址: https://pptw.com/jishu/756496.html
如何检查centos k8s部署是否成功 centos部署k8s的最佳实践有哪些

游客 回复需填写必要信息