2

我尝试为 rockerMQ 代理加注星标,但收到错误消息:

Java 运行时环境没有足够的内存来继续。

本机内存分配 (mmap) 未能映射 8589934592 字节以提交保留内存。

包含更多信息的错误报告文件保存为:

/usr/local/soft/rocketMQ/incubator-rocketmq/distribution/target/apache-rocketmq/hs_err_pid6034.log

Java HotSpot(TM) 64 位服务器 VM 警告:INFO: os::commit_memory(0x00000005c0000000, 8589934592, 0) 失败;error='无法分配内存' (errno=12)

我从错误日志文件中得到了一些关于内存消息的信息:

内存:4k 页,物理 4089840k(551832k 免费),交换 2621432k(2621432k 免费) vm_info:用于 linux-amd64 JRE (1.8.0_144-b01) 的 Java HotSpot(TM) 64 位服务器 VM (25.144-b01),基于2017 年 7 月 21 日 21:57:33,“java_re”与 gcc 4.3.0 20080428 (Red Hat 4.3.0-8)

我怎样才能让rockerMQ代理为我工作

4

2 回答 2

5

您可以减小 JVM 堆大小。打开你项目的distribution/bin/runbroker.sh文件,修改下面这行

JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"

作为

JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g"

现在broker只会生成一个4G的堆。希望能解决你的问题。现在你可以尝试构建和运行了。

于 2018-03-06T21:10:47.777 回答
0

尝试修改启动 shell 脚本以在您的开发/测试环境中制作更小的 JVM 堆大小

于 2017-09-26T02:36:01.243 回答