出错原因
出错模拟:
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就行了
通过记事本打开runserver.cmd文件,把对应的这行修改为如下即可(原始情况下为2g)
set "JAVA_OPT=%JAVA_OPT% -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
通过记事本打开runbroker.cmd文件,把对应的这行修改为如下即可(原始情况下为2g)
set "JAVA_OPT=%JAVA_OPT% -server -Xms256m -Xmx256m"
输入以下命令即可
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"