java elprocessor_Out of memory: Kill process 10660 (java) score 685 or sacrifice child

系统为:CentOS release 6.8 (Final),内核:2.6.32-642.13.1.el6.x86_64,内存:8G,有时候系统会自动kill掉进程,日志提示:Out of memory: Kill process 10660 (java) score 685 or sacrifice child,网上百度的没能解决问题,还望各位大神指点,谢谢!(而且适用的系统是rhel 4)

1、如果可能,请升级到64位系统。

这是最好的解决办法,因为所有的内存都将成为low memory。如果你在这种情况下耗尽了low memory,那就真的是out of memory了。

2、如果受限于必须使用32位系统,最好的解决办法是使用hugemem内核。

这种内核以不同的方式分割low/high memory,而且在大多数情况下会提供足够多的low memory到high memory的映射。在大多数案例中,这是一个很简单的修复方法:安装hugemem kernel RPM包,然后重启即可。

如果运行hugemem内核也不可能,你可以尝试将/proc/sys/vm/lower_zone_protection 的值设置为250甚至更多。这将让内核愿意保护low memory,从而在分配内存时多考虑从high memory分配。据我所知,此选项从2.6.x内核才开始可用。必要的是,您可能需要通过一些实验来找到您系统环境中最适合的值。可以使用下面方法快速的设置和检查改值:

# cat /proc/sys/vm/lower_zone_protection

# echo "250" > /proc/sys/vm/lower_zone_protection

在 /etc/nf 中加入设置,以便启动就生效:

vm.lower_zone_protection = 250

作为最后的努力,你可以关闭oom-killer。这个选项可以导致系统挂起,所以请小心使用(风险自负)!

查看当前oom-killer的状态:

# cat /proc/sys/vm/oom-kill

关闭/打开oom-killer:

# echo "0" > /proc/sys/vm/oom-kill

# echo "1" > /proc/sys/vm/oom-kill

当进程该被oom-killer杀死却没有被杀死时,相关信息会记录到 /var/log/messages:

"Would have oom-killed but /proc/sys/vm/oom-kill is disabled"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值