error=‘Cannot allocate memory‘ (errno=12)

当遇到'error=Cannot allocate memory'(errno=12)时,本质原因是服务器内存不足导致Java程序无法启动。解决思路包括减小JVM内存配置、关闭内存占用大的进程或扩展内存。通过Linux的top命令可以实时查看进程资源占用,结合参数详解及找出内存占用top N进程的方法,能有效诊断和优化内存问题。

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

Bug信息

OpenJDK 64-Bit Server VM warning: INFO: 
os::commit_memory(0x0000000080000000, 716177408, 0) failed; error='Cannot 
allocate memory' (errno=12)

Bug本质原因

服务器内存不足,Java程序无法启动

查看服务器剩余内存

free -h

在这里插入图片描述

常用的解决思路

  1. 减小服务中对JVM的内存配置。
  2. 关必一些不必要的且占用内存大的进程。(linux上利用top命令查看所有进程,看哪些进程占用的内存太大,选择性的kill,释放内存,注意:安歇进程是不需要的。)
  3. 扩展内存。

大部分时候用第二种方式处理,看看是否存在某些程序内存泄露,或者一些由于程序错误导致的内存无法释放。

查看各个进程资源占用情况<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SunnyRivers

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值