如何利用JMeter对CentOS进行压力测试
导读:在CentOS上使用JMeter进行压力测试 一 环境准备 安装 Java 8(JMeter 5.x 要求 Java 8+):执行命令 sudo yum install -y java-1.8.0-openjdk-devel,完成后用 j...
在CentOS上使用JMeter进行压力测试
一 环境准备
- 安装 Java 8(JMeter 5.x 要求 Java 8+):执行命令
sudo yum install -y java-1.8.0-openjdk-devel,完成后用java -version验证。 - 下载并解压 Apache 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。 - 配置环境变量(写入
/etc/profile或~/.bashrc):export JMETER_HOME=/usr/local/apache-jmeter-5.4.3export PATH=$JMETER_HOME/bin:$PATH
使配置生效:source /etc/profile或source ~/.bashrc,用jmeter -v验证安装。
二 快速开始 非GUI压测
- 在本地 Windows GUI 中设计测试计划(如线程组、HTTP 请求、断言、聚合报告等),保存为 .jmx。
- 将 .jmx 与参数化 CSV 上传到 CentOS(可用
rz或scp)。 - 在 CentOS 执行非GUI压测并生成报告:
- 基本命令:
./jmeter -n -t /path/test.jmx -l /path/result.jtl - 生成 HTML 报告:
./jmeter -n -t /path/test.jmx -l /path/result.jtl -e -o /path/report
- 基本命令:
- 将 result.jtl 或 report/ 下载回本地,用 JMeter GUI 的“聚合报告/Summary Report”查看结果。
三 控制吞吐与关键指标
- 控制吞吐:添加 Constant Throughput Timer,设置 Target throughput(in samples per minute)。例如要达成 100 QPS,目标值填 6000(60×100)。
- 常用监听器与指标:
- 聚合报告字段:Label、Samples、Average、Median、90% Line、95% Line、99% Line、Min、Max、Error %、Throughput、Received KB/sec、Sent KB/sec。
- 实时监控可配合 jp@gc 图形监听器(如 Response Times Over Time、Transactions per Second)。
四 分布式压测 Master Slave
- 准备多台 CentOS 机器,保持 JDK 与 JMeter 版本一致。
- 在所有 Agent 上:
- 编辑
jmeter.properties:server.rmi.ssl.disable=true - 启动服务:
nohup $JMETER_HOME/bin/jmeter-server -Djava.rmi.server.hostname=< AGENT_IP> &
- 编辑
- 在 Controller 上:
- 编辑
jmeter.properties:remote_hosts=< AGENT1_IP> :1099,< AGENT2_IP> :1099 - 执行压测:
./jmeter -n -t /path/test.jmx -l /path/result.jtl -R < AGENT1_IP> :1099,< AGENT2_IP> :1099
- 编辑
- 参数化文件(CSV)需在 所有 Agent 上保持相同路径与文件名,脚本中使用 绝对路径。
五 常见问题与监控建议
- 环境与内存:JMeter 是 Java 应用,在
jmeter脚本或jmeter.sh中设置 JVM_ARGS=“-Xms1g -Xmx1g”(按机器内存调整);用jmeter -v与ps/top检查进程与资源。 - 防火墙与 RMI:分布式压测需开放 1099 端口,或在
jmeter.properties中关闭 SSL:server.rmi.ssl.disable=true。 - 结果分析:
.jtl为 CSV 格式,可用本地 JMeter 打开“聚合报告”;如需实时监控,可将结果写入 InfluxDB 并用 Grafana 展示。 - 监控项:关注被压服务的 CPU、JVM 内存/GC、延迟分布,以及中间件(如 Nginx、Redis、MySQL)的 连接数、慢查询 等。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何利用JMeter对CentOS进行压力测试
本文地址: https://pptw.com/jishu/786043.html
