本文主要是介绍rocketmq 解决:There is insufficient memory for the Java Runtime Environment to continue,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。
1.场景描述
linux 安装 rocketmq 启动 mqnameserver、mqbroker 以及运行测试类生产者时报错。
运行命令为:
nohup sh bin/mqnamesrv &或者
nohup sh bin/mqbroker -n localhost:9876 &或者
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
报错内容为:
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 805306368 bytes for committing reserved memory.
2. 原因
默认运行内存设置过大,我查看我的好多默认设置都是大于1G ,甚至有的是 2G 、4G ....
3.解决
修改目录 /distribution/target/apache-rocketmq/bin 下的 3 个配置文件: runserver.sh、runbroker.sh 、tools.sh 。
设置 runserver.sh 中此项配置 为:
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
设置 runbroker.sh 中此项配置 为:
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"
(我改了 runserver.sh、runbroker.sh 依旧不行,后来注意到 tools.sh 中也有配置,3个都改就行了)
设置 tools.sh 中此项配置 为:
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn256m -XX:PermSize=128m -XX:MaxPermSize=128m"
完成以上操作,后续测试就成功运行了。
参考:https://www.cnblogs.com/dingkailinux/p/8874726.html
这篇关于rocketmq 解决:There is insufficient memory for the Java Runtime Environment to continue的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!