RocketMQ 内存优化
RocketMQ 的默认内存占用非常高,是4×4g的,普通人是消耗不起的,所以第一件事情就是调整RocketMQ的占用内存。
调整RocketMQ的内存目前我所知道的有两个方面
- MQ的启动脚本可以调整内存
- mqbroker和mqnamesrv的配置可以调整内存
1.启动脚本的内存调整
启动脚本可以配置MQ整体内存大小,有两个启动脚本,runbroker.sh 和runserver.sh。
脚本里面的默认配置信息是
JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:PermSize=128m -XX:MaxPermSize=320m"
以上配置可以根据自己情况进行调整,记得runbroker.sh 和runserver.sh都要修改。
1.mqbroker和mqnamesrv的内存调整
这两项配置也很重要,默认是500m到1g。具体文件配置是mqbroker.xml和mqnamesrv.xml。
文件里面的配置信息是
<options>
<-Xms200m></-Xms200m>
<-Xmx200m></-Xmx200m>
<-XX:NewSize>50M</-XX:NewSize>
<-XX:MaxNewSize>50M</-XX:MaxNewSize>
<-XX:PermSize>30M</-XX:PermSize>
<-XX:MaxPermSize>30M</-XX:MaxPermSize>
</options>
以上可以根据自己情况进行配置。
要注意的事情是mqbroker.xml和mqnamesrv.xml的内存不要超过runbroker.sh 和runserver.sh的内存,不然会引起内存不够导致奔溃。