麒麟OS安装Rocketmq后启动broker报'UseG1GC' is experiment错误的解决方式

举报
小澤马力欧 发表于 2021/03/12 16:40:29 2021/03/12
【摘要】 Rocketmq;VM option 'UseG1GC' is experimental;must be enabled via -XX:+UnlockExperimentalVMOptions;mqbroker启动失败;

因为公司正在做鲲鹏芯和麒麟OS的兼容测试,需要安装RocketMQ服务,安装完成后启动broker时,出现了以下错误:

Error: VM option 'UseG1GC' is experimental and must be enabled via -XX:+UnlockExperimentalVMOptions.
Error: Could not create the Java Virtual Machine.

安装过程(省略步骤):

方式一:官方全平台源码包安装:详细操作方式请参考官网的安装文档;

方式二:官方全平台编辑包:直接下载使用官方已经编译好的程序包;

方式三:根据华为云Rocketmq安装文档安装,地址:https://www.huaweicloud.com/kunpeng/software/rocketmq.html(需要注意,根据文档描述,git clone https://github.com/apache/rocketmq.git rocketmq 下载的是4.7.0版本的源码包,但实际是4.8.0版本的);

安装或下载解压完成之后,软件的结构基本一致,详细不作介绍;

根据以上任一方式安装好Rocketmq之后,默认的启动命令如下:

步骤一:进入Rocketmq安装目录下的bin目录;

步骤二:启动namesrv,命令为:nohup ./mqnamesrv &;

步骤三:启动broker,命令为:nohup ./mqbroker -n localhost:9876 &;

正常期望是namesrv和broker都陈宫启动,但实际是namesrv成功启动了,而broker缺启动失败,具体的报错信息如下:

Error: VM option 'UseG1GC' is experimental and must be enabled via -XX:+UnlockExperimentalVMOptions.
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

翻译过来大概意思为:

虚拟机选项'UseG1GC' 是一个试验性的参数,以及必须允许-XX:+UnlockExperimentalVMOptions参数;

无法创建JAVA虚拟机;

发生一个致命错误,程序将退出运行;

这么看还是挺好解决,通过mqbroker.sh脚本查看到,会调用runbroker.sh脚本,编辑runbroker.sh脚本,发现JAVA_OPT中包含了-XX:UseG1GC参数,我们在器后面添加错误提示需要允许的参数,如下:

保存退出后再次启动broker,仍报相同错误,问题未解决,换个思考方式,既然UseG1GC是一个试验性的参数,那即是有可能不稳定或者无法使用;

尝试:去掉刚才新加的参数JAVA_OPT="${JAVA_OPT} -XX:+UnlockExperimentalVMOptions";然后删除参数-XX:+UseG1GC;

再次启动,没有报错,成功启动,如下图:

具体原因是什么没有去深究,希望对各位有所帮助。

另:去掉参数-XX:+UseG1GC,保留JAVA_OPT="${JAVA_OPT} -XX:+UnlockExperimentalVMOptions",也是能成功启动的。

备注:使用鲲鹏云服务器、麒麟操作系统、oracle jdk 1.8.x(据了解麒麟操作系统目前只兼容open jdk和毕昇jdk);

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。