首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么不生成OutOfMemoryError?

问为什么不生成OutOfMemoryError?
EN

Stack Overflow用户
提问于 2012-06-26 04:01:45
回答 2查看 148关注 0票数 1

我的java编写的应用程序在工作了一段时间后被“杀死”了。

在Linux下从SH脚本启动Java应用程序,该脚本已经运行了一段时间。然后PID显示出来,并说“杀”字。

如下所示:

代码语言:javascript
复制
runMyServer.sh: line 3: 3593 Killed         java -Xmx2024m -cp ...

系统日志中有有关内存不足事件的信息。所以它看起来像是内存不足错误。

我的问题是:什么时候不能生成OutOfMemroyError异常?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-26 04:09:42

您可能系统上的内存太少,或者运行的进程占用了所有的ram和交换空间。当GNU/Linux内存不足时,它将杀死使用大量内存的进程。这基本上只是杀死进程,所以不是您的Java进程内存不足,而是操作系统。

票数 2
EN

Stack Overflow用户

发布于 2012-06-26 05:15:22

为了避免你的java应用程序被OOM杀手杀死,只需要给你的系统增加足够的交换空间,并禁用内存超载。

代码语言:javascript
复制
dd if=/dev/zero of=/swapfile bs=1M count=2048
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo "/swapfile               swap                    swap    defaults        0 0" >> /etc/fstab
echo 2 > /proc/sys/vm/overcommit_memory
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11196488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档