RocketMQ报错: commit_memory(0x00000006ec800000, 2147483648, 0) failed; error=‘Cannot allocate memory

RocketMQ报错: commit_memory(0x00000006ec800000, 2147483648, 0) failed; error=‘Cannot allocate memory环境:虚拟机测试环境,在向MQ推送消息发现连不上namesrv,查看netstat-antlp|grep9876发现namesrv进程已关闭。利用命令重启:sh/usr/local/rocketmq/rocketmq-all/bin/mqnamesrv提示报错:[root@hantestrocketmq-all]#sh/usr/local/rocketmq/rocketmq-all/bin/mqnamesrvOpenJDK64-BitServerVMw

大家好,又见面了,我是你们的朋友全栈君。

环境:

虚拟机测试环境,在向MQ推送消息发现连不上namesrv,查看

netstat -antlp | grep 9876

发现namesrv进程已关闭。利用命令重启:

sh /usr/local/rocketmq/rocketmq-all/bin/mqnamesrv

提示报错:

[root@hantest rocketmq-all]# sh /usr/local/rocketmq/rocketmq-all/bin/mqnamesrv
OpenJDK 64-Bit Server VM warning: Using the DefNew young collector with the CMS collector is deprecated and will likely be removed in a future release
OpenJDK 64-Bit Server VM warning: UseCMSCompactAtFullCollection is deprecated and will likely be removed in a future release.
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000006ec800000, 2147483648, 0) failed; error=’Cannot allocate memory’ (errno=12)
 

解决:

定位到是内存不足错误,采用调整参数扩容。

更改  bin/runserver.sh下的参数:

将上边一行改为下面一行即可。

#JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

重新运行启动脚本,启动成功。

 

踩坑

1 注意单位不一样,将 4g改为256m而不要忘了更改m,一开始忘了改单位所以报错:

OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00007f26b0a00000, 274877841408, 0) failed; error=’Cannot allocate memory’ (errno=12)

2 xmn要小于前面的值,不然会报错

OpenJDK 64-Bit Server VM warning: MaxNewSize (131072k) is equal to or greater than the entire heap (131072k).  A new max generation size of 131008k will be used.

参考: 

哎,一古,金社长:博主:JAVA_OPT=”${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m”这个配置有问题吧,Xms和Xmx都设置为256了,Xmn搞个512,新生代的大小比整个堆都大1 年前回复RocketMQ报错: commit_memory(0x00000006ec800000, 2147483648, 0) failed; error=‘Cannot allocate memory

 

参考链接

https://www.jianshu.com/p/837b4c6aee65

https://blog.csdn.net/jiangyu1013/article/details/81486374

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/146384.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 编程怎么入门_损失函数的基本概念和原理

    编程怎么入门_损失函数的基本概念和原理介绍了Socket编程的基本概念,并以UDP编程为例,给出示例。

    2022年10月18日
    3
  • node.js实现CURL功能

    PHP中的CURL功能很好实现,直接四五行代码封装一下就OK了。node.js中如何实现CURL的功能呢,下面详细介绍。这里需要用到request这个库,所以先安装此包:npminstallreq

    2021年12月21日
    183
  • DatagramPacket与DatagramSocket 详解

    DatagramPacket与DatagramSocket 详解1.基本概念:  a.DatagramPacket与DatagramSocket位于java.net包中  b.DatagramPacket表示存放数据的数据报,DatagramSocket表示接受或发送数据报的套接字  c.由这两个类所有构成的网络链接是基于UDP协议,是一种不可靠的协议。  之所以不可靠是因为发送方不负责数据是否发送成功,接收方收到数据时也不会

    2022年5月2日
    82
  • 实现KMO和Bartlett的球形度检验的两种方法[通俗易懂]

    实现KMO和Bartlett的球形度检验的两种方法[通俗易懂]文章目录实现KMO和Bartlett的球形度检验的两种方法SPSS实现KMO和Bartlett的球形度检验第一步:选择“因子分析”第二步:选择变量第三步:选择KMO和巴特利特球形度检验输出结果SAS实现KMO和Bartlett的球形度检验数据集来源参考资料实现KMO和Bartlett的球形度检验的两种方法SPSS实现KMO和Bartlett的球形度检验第一步:选择“因子分析”导入数据…

    2022年6月14日
    106
  • 数据结构里的串是什么东西?[通俗易懂]

    数据结构里的串是什么东西?[通俗易懂]上个月终于把栈和队列专题完成了,其实从开始到现在,我们主要学到的东西其实就是数组与链表的各种变种。那么这个月开始,我们轻松点,学习些别的东西。那么开启新的专题:串。上个月终于把栈和队列专题完成了,其

    2022年8月5日
    5
  • 模电知识点汇总

    模电知识点汇总根据北航921大纲整理的一些模电知识点:##一:半导体基础###1.定义本征半导体是完全纯净的,没有杂质的半导体。本征半导体有两种载流子,即电子和空穴。但是本征半导体的导电能力较弱并且容易受到温度的影响。在本征半导体中插入高价元素,形成n型半导体。他的多数载流子为电子,少子为空穴。###2.PN结将p型半导体与n型半导体制作在同一片硅片上,它们的交界处形成PN结。多子由于浓度差进行扩散运…

    2022年6月20日
    31

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号