原文链接
查看信息
输出以下程序:
dmesg | egrep -i -B100 'killed process'
能够输入最近killed的信息。
设定kill优先度
齐全关掉oom(不倡议)
sysctl vm.overcommit_memory=2echo “vm.overcommit_memory=2” >> /etc/sysctl.conf
呈现 Out of memory之后重启
sysctl vm.panic_on_oom=1sysctl kernel.panic=Xecho “vm.panic_on_oom=1” >> /etc/sysctl.confecho “kernel.panic=X” >> /etc/sysctl.conf
优先思考kill这个过程
sudo echo 10>/proc/[PID]/oom_adj
尽量不去kill这个过程
sudo echo -15>/proc/[PID]/oom_adj
不会kill这个过程
sudo echo -17>/proc/[PID]/oom_adj
oom_adj的值在-16 到 +15之间,值越高被kill的优先度越高。当该值为-17时,零碎将不会杀死指定pid的过程,而-16~15则会使得过程的/proc/[pid]/oom_adj值呈指数模式递增:
$$K\times 2^{^{n}}$$
即它们被杀掉的可能性呈指数递增。针对init(过程号为1)这个过程,无论该值设为多少都不会被杀。
若回绝拜访
命令改为:
bash -c "echo '10' | tee /proc/[PID]/oom_adj"bash -c "echo '-15' | tee /proc/[PID]/oom_adj"bash -c "echo '-17' | tee /proc/[PID]/oom_adj"
学习更多编程常识,请关注我的公众号:
代码的路