如何利用JMeter进行CentOS负载测试
导读:在CentOS上使用JMeter进行负载测试 一 环境准备与安装 安装 Java(推荐 OpenJDK 8): 命令:sudo yum install -y java-1.8.0-openjdk-devel 验证:java -versi...
在CentOS上使用JMeter进行负载测试
一 环境准备与安装
- 安装 Java(推荐 OpenJDK 8):
- 命令:
sudo yum install -y java-1.8.0-openjdk-devel - 验证:
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/ - 配置环境变量(写入
/etc/profile或~/.bashrc):export JMETER_HOME=/usr/local/apache-jmeter-5.4.3export PATH=$JMETER_HOME/bin:$PATH
- 使配置生效:
source /etc/profile - 验证:
jmeter -v
- 下载:
- 上传脚本(如无 GUI,可用
lrzsz):- 安装:
sudo yum install -y lrzsz - 上传:
rz,选择本地的 .jmx 脚本
- 安装:
二 编写与执行测试
- 脚本准备:在本地 JMeter GUI 中创建测试计划(如 线程组、HTTP 请求、断言、监听器),保存为 test.jmx,再上传至 CentOS。
- 非 GUI 执行(推荐):
- 基本命令:
jmeter -n -t /path/to/test.jmx -l /path/to/results.jtl - 常用参数:
-n非 GUI 模式-t指定 .jmx 脚本-l指定结果文件 .jtl-e -o /path/to/report测试结束后直接生成 HTML 报告
- 基本命令:
- 示例(50 并发、10 秒 ramp-up、循环 100 次):
- 线程组:线程数 50,Ramp-Up 10 秒,循环 100
- HTTP 请求:配置协议、域名/IP、端口、路径、方法、请求头/体
- 命令行:
jmeter -n -t test.jmx -l result.jtl -e -o report
三 结果分析与可视化
- 本地查看:将 results.jtl 下载到本地 JMeter,使用聚合报告、图形结果等监听器分析。
- 服务器生成 HTML 报告:在 CentOS 上直接执行
jmeter -g /path/to/results.jtl -o /path/to/report- 报告目录中的 index.html 可用浏览器打开查看。
四 分布式压测与负载均衡测试
- 适用场景:单机并发能力不足、需要模拟更大规模用户或验证负载均衡效果时。
- 基本架构:一台 Master(控制机) 多台 Slave(工作机),所有节点 JMeter 版本保持一致(如 5.6.3)。
- 配置步骤:
- 在所有节点安装相同版本 JMeter 并配置环境变量
- Master 的
jmeter.properties中设置:remote_hosts=192.168.1.158,192.168.1.159 - 可选(简化 RMI):
server.rmi.localport=1099,server.rmi.ssl.disable=true - 各 Slave 启动服务:在 JMeter 的
bin目录执行./jmeter-server(或jmeter-server,视版本而定) - Master 发起测试:
jmeter -n -t test.jmx -l result.jtl -R 192.168.1.158,192.168.1.159
- 说明:分布式压测本质上是通过多台压力机产生更高并发,从而更真实地评估系统在负载均衡架构下的表现。
五 性能与稳定性调优建议
- JMeter JVM 调优:编辑
bin/jmeter或jmeter.sh,设置堆大小(如-Xms2g -Xmx8g,不超过物理内存的 2/3),避免 OOM 或频繁 GC 影响结果。 - 系统资源与网络:
- 提高文件句柄数:编辑
/etc/security/limits.conf,设置* soft/hard nofile 65536,* soft/hard nproc 65565,并执行ulimit -n 102400临时生效 - TCP/端口与内核参数:如
net.ipv4.ip_local_port_range=1024 65000、net.ipv4.tcp_tw_reuse=1、net.ipv4.tcp_fin_timeout=30,执行sysctl -p生效
- 提高文件句柄数:编辑
- 被测端(如 Nginx):适当提升
worker_connections、keepalive_timeout等以应对高并发连接 - 运行规范:压测时尽量使用非 GUI模式,避免额外资源占用影响数据准确性。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何利用JMeter进行CentOS负载测试
本文地址: https://pptw.com/jishu/766028.html
