我的java编写的应用程序经过一段时间的工作后被“杀死”了。
Java应用程序是从Linux下的SH脚本启动的,它运行了一段时间。之后,PID显示并“杀死”了这个词。
像这样:
runMyServer.sh: line 3: 3593 Killed java -Xmx2024m -cp ...
系统日志中有关于内存不足事件的信息。所以它看起来像内存错误。
我的问题是:当OutOfMemroyError异常无法生成时?
答案 0 :(得分:2)
您的系统内存可能太少,或者运行耗尽所有内存和交换的进程。当GNU / Linux内存不足时,它将使用大量内存来终止进程。这基本上只是对进程的杀戮,所以不是你的Java进程耗尽内存,而是操作系统。
答案 1 :(得分:0)
为了避免您的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_memory