温馨提示×

centos下jmeter如何分布式

小樊
48
2026-10-15 03:26:43
栏目: 智能运维

在 CentOS 下使用 JMeter 进行分布式压测,核心思路是:
一台 Controller(控制机)+ 多台 Agent(执行机),由 Controller 统一调度。


一、环境准备(所有机器)

1. 安装 Java

java -version

若未安装:

yum install -y java-1.8.0-openjdk

2. 安装 JMeter

cd /opt
wget https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-5.6.3.tgz
tar -zxvf apache-jmeter-5.6.3.tgz
ln -s apache-jmeter-5.6.3 jmeter

3. 配置环境变量(可选)

vi /etc/profile
export JMETER_HOME=/opt/jmeter
export PATH=$JMETER_HOME/bin:$PATH
source /etc/profile

二、Agent(执行机)配置

1. 修改 jmeter.properties

vi $JMETER_HOME/bin/jmeter.properties

关键配置:

server.rmi.ssl.disable=true

(测试环境建议关闭 SSL)

2. 启动 Agent

jmeter-server

或后台运行:

nohup jmeter-server > jmeter-agent.log 2>&1 &

注意:Agent 默认端口 1099


三、Controller(控制机)配置

1. 修改 jmeter.properties

vi $JMETER_HOME/bin/jmeter.properties

配置 Agent 列表:

remote_hosts=192.168.1.11:1099,192.168.1.12:1099
server.rmi.ssl.disable=true

2. 关闭本地执行(可选)

# 避免 Controller 也参与压测
# 不写 localhost

四、运行分布式测试

方式一:命令行(推荐)

jmeter -n \
-t test.jmx \
-r \
-l result.jtl \
-e -o report

参数说明:

  • -r:调用所有 remote_hosts
  • -n:非 GUI
  • -l:结果文件
  • -e -o:生成 HTML 报告

方式二:GUI(仅调试用)

jmeter

菜单:

Run → Remote Start → 选择 Agent
Run → Remote Start All

五、常见问题(CentOS 特有)

1. 防火墙问题

systemctl stop firewalld
# 或
firewall-cmd --add-port=1099/tcp --permanent
firewall-cmd --reload

2. hostname 解析问题

hostname -i

若返回 127.0.0.1,需修改:

vi /etc/hosts
192.168.1.10 controller

Agent 启动时可指定:

RMI_HOST_DEF=-Djava.rmi.server.hostname=192.168.1.11

3. 端口冲突

修改:

server_port=6000

六、架构示意

Controller
   |
   |-- Agent1 (CentOS)
   |-- Agent2 (CentOS)
   |-- Agent3 (CentOS)

如果你愿意,我也可以:

  • 帮你写 一键部署脚本
  • 用 Docker 跑 JMeter 分布式
  • 针对 高并发调优参数 给建议

0 踩