分享知识 传递快乐
RocketMQ 启动 mqbroker 时日志文件打印如下:
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000005c0000000, 8589934592, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 8589934592 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /home/guest/rocketmq-4.9.2/hs_err_pid1518.log
rocketmq 默认配置的内存时8G,当内存过小是就会出现这种问题。关键日志 Cannot allocate memory,这种问题是内存分配时出错导致。
解决办法:
修改 rocketmq/bin/ 下的服务启动脚本 runserver.sh 、runbroker.sh 中对于内存的限制。
示例:
# vi bin/runserver.sh #调整nameserver启动的内存(如果服务器内存比较大,可以不调整),如果内存较小,不调整此文件,可能导致无法启动
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx512m -Xmn512m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=320m"
# vi bin/runbroker.sh
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx512m -Xmn256m"
—————————
如有不足请留言指正
相互学习,共同进步