我的java编写的应用程序在工作了一段时间后被“杀死”了。
在Linux下从SH脚本启动Java应用程序,该脚本已经运行了一段时间。然后PID显示出来,并说“杀”字。
如下所示:
runMyServer.sh: line 3: 3593 Killed java -Xmx2024m -cp ...系统日志中有有关内存不足事件的信息。所以它看起来像是内存不足错误。
我的问题是:什么时候不能生成OutOfMemroyError异常?
发布于 2012-06-26 04:09:42
您可能系统上的内存太少,或者运行的进程占用了所有的ram和交换空间。当GNU/Linux内存不足时,它将杀死使用大量内存的进程。这基本上只是杀死进程,所以不是您的Java进程内存不足,而是操作系统。
发布于 2012-06-26 05:15:22
为了避免你的java应用程序被OOM杀手杀死,只需要给你的系统增加足够的交换空间,并禁用内存超载。
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_memoryhttps://stackoverflow.com/questions/11196488
复制相似问题