Windows下RocketMQ下: VMCould not reserve enough space for 2097152KB object heap

当在cmd窗口尝试运行RocketMQ的mqnamesrv.cmd时,出现ErroroccurredduringinitializationofVM,Couldnotreserveenoughspacefor2097152KBobjectheap的错误。该问题是因为初始化VM时内存分配过大。解决方案是降低RocketMQ启动时申请的内存,分别修改runserver.cmd和runbroker.cmd文件中的JAVA_OPT设置,将内存大小改为256MB,然后使用startmqnamesrv.cmd启动服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


出错原因

出错模拟:

cmd窗口下进行访问RocketMQ下的bin目录下的mqnamesrv.cmd 文件

mqnamesrv.cmd 

结果出现错误,如下:

Error occurred during initialization of VM

Could not reserve enough space for 2097152KB object heap

大致原因就是:在初始化VM时期间出现了一个错误,无法给2.09GB的对象堆预留足够的空间


解决方案

知道原因之后,解决思路如下:配置RocketMQ初始化VM时申请分配的内存降低为256MB就行了

  1. 通过记事本打开runserver.cmd文件,把对应的这行修改为如下即可(原始情况下为2g)

set "JAVA_OPT=%JAVA_OPT% -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
  1. 通过记事本打开runbroker.cmd文件,把对应的这行修改为如下即可(原始情况下为2g)

set "JAVA_OPT=%JAVA_OPT% -server -Xms256m -Xmx256m"
  1. 输入以下命令即可

start mqnamesrv.cmd
参考链接: https://blog.csdn.net/weixin_46136280/article/details/126579512?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167324042816800225524355%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=167324042816800225524355&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~pc_rank_34-21-126579512-null-null.142^v70^pc_new_rank,201^v4^add_ask&utm_term=Error%20occurred%20during%20initialization%20of%20VM%20Could%20not%20reserve%20enough%20space%20for%202097152KB%20object%20heap&spm=1018.2226.3001.4187

后续

当你运行mqbroker.cmd时,出现如下错误时:

lnvalid maximum direct memory size:-XX:MaxDirectMemorySize=15g

再次编辑runbroker.cmd文件

默认情况下,MaxDirectMemorySize=15g(隔着玩呢,我电脑最大内存16g,都给你了,我咋搞呢😡)

set "JAVA_OPT=%JAVA_OPT% -XX:MaxDirectMemorySize=512m"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值