怎么修改RocketMQ中broker使用内存大小

  • 作者: 凯哥Java(公众号:凯哥Java)
  • RocketMQ
  • 时间:2025-01-17 13:02
  • 13人已阅读
简介 问题:那broker现在是-Xms8g-Xmx8g我想该成4g怎么修改?然后怎么重启?修改RocketMQBroker的内存大小当前broker进程的JVM配置是:sh复制代码-Xms8g -Xmx8g如果你想修改为:sh复制代码-Xms4g -Xmx4g可以按照以下步骤操作。1.找到Broker的JAVA选项Broker的JVM参数通常是在runbroker.sh里设置的。(

🔔🔔🔔好消息!好消息!🔔🔔🔔

有需要的朋友👉:联系凯哥 微信号 kaigejava2022

问题:

那 broker 现在是 -Xms8g -Xmx8g 我想该成4g怎么修改?然后怎么重启 ?

修改 RocketMQ Broker 的内存大小

当前 broker 进程的 JVM 配置是:

sh复制代码-Xms8g -Xmx8g

如果你想修改为:

sh复制代码-Xms4g -Xmx4g

可以按照以下步骤操作。


1. 找到 Broker 的 JAVA 选项

Broker 的 JVM 参数通常是在 runbroker.sh 里设置的。

(1) 编辑 runbroker.sh

sh复制代码vi /tol/rocketmq/bin/runbroker.sh

(2) 查找 JAVA_OPT

vi 中输入:

sh复制代码/ JAVA_OPT

然后按 Enter,查找 JAVA_OPT 变量。

你应该能找到类似的内容:

sh复制代码JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"

(3) 修改内存参数

-Xms8g -Xmx8g 改成 -Xms4g -Xmx4g,例如:

sh复制代码JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g"

-Xmn2g 表示新生代内存大小,可根据需要调整)

(4) 保存并退出

  • Esc 退出编辑模式

  • 输入 :wq 并回车,保存退出


2. 重启 RocketMQ Broker

(1) 停止 Broker

先找到 Broker 进程的 PID:

sh复制代码ps -ef | grep BrokerStartup

例如返回:

sh复制代码root     12345  ...  org.apache.rocketmq.broker.BrokerStartup

然后执行:

sh复制代码kill -9 12345

或者:

sh复制代码sh /tol/rocketmq/bin/mqshutdown broker

(2) 启动 Broker

sh复制代码sh /tol/rocketmq/bin/mqbroker -c /tol/rocketmq/conf/broker.conf &

(如果你的 broker.conf 在其他路径,请修改 -c 后的路径)

(3) 检查 Broker 是否正常启动

sh复制代码ps -ef | grep BrokerStartup

或者:

sh复制代码netstat -tlnp | grep 10911

10911 是默认的 Broker 端口)


3. 验证修改是否生效

(1) 查看 JVM 进程

sh复制代码jps -lvm | grep BrokerStartup

如果输出中包含:

sh复制代码-Xms4g -Xmx4g -Xmn2g

说明修改生效。

(2) 检查日志

sh复制代码tail -f ~/logs/rocketmqlogs/broker.log

确保没有异常错误。


这样,你的 RocketMQ Broker 内存大小就成功修改为 4GB 了!


问题2:

E486: Pattern not found:  JAVA_OPT 

如果在 runbroker.sh 中没有找到 JAVA_OPT 配置,可能是因为该脚本在某个地方没有显式定义该变量,而是直接在启动时通过其他方式设置了 Java 参数。

这种情况通常是通过 JAVA_HOME 或直接在脚本的其他地方配置了 JVM 参数。你可以尝试以下两种方法来修改 broker 的内存大小:


方法一:通过 broker.conf 配置

RocketMQ Broker 的内存配置有可能是通过 broker.conf 配置文件来设置的。你可以检查 broker.conf 文件是否有 JVM 参数设置。

1. 编辑 broker.conf 配置文件

sh复制代码vi /tol/rocketmq/conf/broker.conf

2. 检查并修改内存配置

在文件中找到类似以下的配置项:

properties复制代码# Java options for the broker
# 例如:
# JVM 参数设置位置
# 默认情况下 RocketMQ 的启动脚本可能会在这里读取内存配置
# 如果没有设置内存参数,你可以手动添加或修改

如果没有,您可以手动添加以下配置:

properties复制代码# 设置最小和最大堆内存
java.opt=-Xms4g -Xmx4g -Xmn2g

3. 保存并退出

  • Esc 退出编辑模式

  • 输入 :wq 并回车,保存退出


方法二:通过修改 runbroker.sh 脚本直接设置 JVM 参数

1. 编辑 runbroker.sh 脚本

sh复制代码vi /tol/rocketmq/bin/runbroker.sh

2. 设置 JAVA_OPT 或 JVM 参数

在脚本的适当位置(如 ROCKETMQ_HOME 被设置之后),你可以直接添加以下内容来设置内存参数:

sh复制代码JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g"export JAVA_OPT

3. 保存并退出

  • Esc 退出编辑模式

  • 输入 :wq 并回车,保存退出


重启 Broker 服务

  1. 停止 Broker:

    sh复制代码ps -ef | grep BrokerStartup

    找到进程 ID(PID),然后:

    sh复制代码kill -9 <PID>

    或者:

    sh复制代码sh /tol/rocketmq/bin/mqshutdown broker
  2. 启动 Broker:

    sh复制代码sh /tol/rocketmq/bin/mqbroker -c /tol/rocketmq/conf/broker.conf &
  3. 检查 Broker 是否正常启动:

    sh复制代码ps -ef | grep BrokerStartup

    或者:

    sh复制代码netstat -tlnp | grep 10911

验证 JVM 参数是否生效

  1. 查看 JVM 进程:

    sh复制代码jps -lvm | grep BrokerStartup

    你应该能看到类似如下的输出:

    sh复制代码-Xms4g -Xmx4g -Xmn2g
  2. 查看日志文件:

    sh复制代码tail -f ~/logs/rocketmqlogs/broker.log

    检查是否有异常错误。


这样,你就成功修改了 RocketMQ Broker 的内存配置!


TopTop