在 CentOS 上使用 JMeter 进行负载测试
一 环境准备
sudo yum install -y java-1.8.0-openjdk-develjava -versionsudo useradd -m -s /bin/bash jmeterulimit -n 65535/etc/security/limits.conf 增加jmeter soft nofile 65535
jmeter hard nofile 65535
sudo yum install -y lrzsz,使用 rz 上传 .jmx 脚本。二 安装与验证 JMeter
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/profilejmeter -v(应输出版本号)三 编写测试脚本
rz)。四 执行测试与生成报告
# 基本:生成 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 -s 或 ss -s:网络连接与丢包jmeter.properties:remote_hosts=192.168.1.101:1099,192.168.1.102:1099
server.rmi.localport=1099
server.rmi.ssl.disable=true
/opt/jmeter/bin/jmeter-serverjmeter -n -t test.jmx -R192.168.1.101:1099,192.168.1.102:1099sudo firewall-cmd --permanent --add-port=1099/tcp && sudo firewall-cmd --reload六 常见问题与优化建议