OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00007f6cb1055000, 16384, 0) failed; erro

Posted 沛沛老爹

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00007f6cb1055000, 16384, 0) failed; erro相关的知识,希望对你有一定的参考价值。

背景

今天突然网站不能访问了。

赶紧重启下服务。发现提示服务未启动。

服务是什么时候关的呢?

赶紧把catalina.out文件下到本地。

然后开始定位问题点。

问题

找了半天,终于发现了问题

OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00007f6cb1055000, 16384, 0) failed; error='Not enough space' (errno=12)
[244754.863s][warning][os,thread] Failed to start thread - pthread_create failed (EAGAIN) for attributes: stacksize: 1024k, guardsize: 0k, detached.
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 16384 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /home/www/app/hs_err_pid2177811.log

问题说是因为JVM空间不够了。所以溢出了。

问题找到了,解决就好办多了。

解决方案

1、增加JVM运行内存

设置J VM启动参数

# Xms: 初始化堆内存(heap)
# Xmx: 最大堆内存
# PermSize: 初始化永久内存,存储class类,不会被GC
# MaxPermSize: 最大永久内存
# Xss: 每增加一个线程(thread)就会立即消耗的内存,而最佳值应该是128K,默认值好像是512
JAVA_OPTS=-Xss128k -Xms512m -Xmx2048m -XX:PermSize=128m -XX:MaxPermSize=1024m

2、设置交换内存swap

一般情况下,我们都是按照两倍的内存来配置。

dd if=/dev/zero of=/tmp/swapfile bs=1024k count=256
#格式化文件
mkswap /tmp/swapfile
#加载交换文件
swapon /tmp/swap
#永久生效
vim /etc/fstab
#最后一行添加
/swap1    swap    swap    defaults    0    0

3、加大内存

这个一般上面两个方式搞不定的时候,你可以使用这个方式。

总结

内存不够主要一般是JVM设置启动参数的时候配置不当导致的情况比较多。

一般情况下很少会出现线上内存不够的情况(如果你要是用服务器做Redis这些那另当别论)。

个人还是比较推荐使用第一种方案,如果你想更近一步的话,你可以装个Arthas来查看JVM中的内存使用情况。

以上是关于OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00007f6cb1055000, 16384, 0) failed; erro的主要内容,如果未能解决你的问题,请参考以下文章

OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x000001faf3e50000

OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00007f6cb1055000, 16384, 0) failed; erro

OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory failed error='Cannot allocate memory&#

记录:OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loade...idea debug启动报错解决方案

Java HotSpot(TM) 64-Bit Server VM warning: ignorin

Java HotSpot(TM) 64-Bit Server VM warning: Insufficient space for shared memory file...