在CentOS上使用JMeter进行压力测试
一 环境准备与安装
sudo yum install -y java-1.8.0-openjdk-develexport JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdkexport PATH=$JAVA_HOME/bin:$PATHsource /etc/profilejava -versionwget https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.4.3.tgztar -zxvf apache-jmeter-5.4.3.tgz -C /usr/local/export JMETER_HOME=/usr/local/apache-jmeter-5.4.3export PATH=$JMETER_HOME/bin:$PATHsource ~/.bashrcjmeter -vyum install -y lrzszrz,下载:sz <文件>。二 编写与执行测试
jmeter -n -t /path/to/test.jmx -l /path/to/results.jtl-n 非 GUI;-t 指定脚本;-l 指定结果文件(JTL/CSV)。jmeter -g /path/to/results.jtl -o /path/to/report-e -o <报告目录>:压测完成后直接生成 HTML 报告-J<变量名>=<值>:覆盖测试计划中的用户定义变量(本地属性)-G<变量名>=<值>:设置远程属性(分布式/远程执行时使用)-R<host1:1099,host2:1099>:指定远程压力机(替代在 jmeter.properties 中配置 remote_hosts)。三 分布式压测
cd $JMETER_HOME/binnohup ./jmeter-server -Djava.rmi.server.hostname=<本机IP> &remote_hosts=<agent1_ip>:1099,<agent2_ip>:1099server.rmi.localport=1099server.rmi.ssl.disable=true(如无 SSL 需求)jmeter -n -t test.jmx -l results.jtl -e -o report-R<agent1_ip>:1099,<agent2_ip>:1099sudo firewall-cmd --permanent --add-port=1099/tcpsudo firewall-cmd --reload四 结果分析与监控
jmeter -g 生成 HTML 报告 便于分享与归档。五 性能与安全注意事项
-J/-G 参数化线程数、Ramp-Up、循环次数等,便于不同场景快速复用脚本。-Xms/-Xmx),一般不超过物理内存的 2/3;结合压测并发与机器规格合理设置。ulimit -n)、优化 网络/内核参数、以及被压测端(如 Nginx/应用服务器)的最大连接数与超时配置,避免瓶颈出现在压测机或被压测服务侧。