irpas技术客

Native memory allocation (mmap) failed to map 6215958528 bytes for committing re

网络投稿 8304

今天突然发现es报错,无法正常启动,报错信息如下:

Exception in thread "main" java.lang.RuntimeException: starting java failed with [1] output: # # There is insufficient memory for the Java Runtime Environment to continue. # Native memory allocation (mmap) failed to map 6215958528 bytes for committing reserved memory. # An error report file with more information is saved as: # logs/hs_err_pid173.log error: OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x000000064d800000, 6215958528, 0) failed; error='Not enough space' (errno=12) ?? ?at org.elasticsearch.tools.launchers.JvmOption.flagsFinal(JvmOption.java:119) ?? ?at org.elasticsearch.tools.launchers.JvmOption.findFinalOptions(JvmOption.java:81) ?? ?at org.elasticsearch.tools.launchers.JvmErgonomics.choose(JvmErgonomics.java:38) ?? ?at org.elasticsearch.tools.launchers.JvmOptionsParser.jvmOptions(JvmOptionsParser.java:135) ?? ?at org.elasticsearch.tools.launchers.JvmOptionsParser.main(JvmOptionsParser.java:86) ?

从报错信息看,应该是内存不足的原因,项目采用的docker方式部署,于是修改了docker的配置文件,增大了jvm的内存,

原来配置如下:

修改后配置如下:

?

重启docker,失望的是,还是无法启动,报错还是一样的。于是查看了下机器的内存:

free -h

?

发现可用内存已不足,即,可用的内存为5.3G,但是需要的内存为:?6215958528/1024/1024/1024?= 5.7G,所以问题的根源不是jvm的配置问题,而是机器内存不足,最后将无用的服务进行关闭,释放内存,重启es的服务,一切正常。


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #Native #memory #Allocation #mmap #failed #To #map #6215958528