防止Linux的OOM在我们的网络服务器上杀死apache

前端之家收集整理的这篇文章主要介绍了防止Linux的OOM在我们的网络服务器上杀死apache前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们有一个debian linux webserver.它只是运行apache2.我们的 mysql服务器在另一台主机上.但是,我们有时会在Web服务器上运行cron任务来执行常规任务.

然而,最近其中一个cron任务有一个bug并开始吞噬内存. Linux OOM杀手杀死了apache.这当然会打倒我们的网站.记忆饥渴的cron一直在奔跑.但是在这种情况下,我希望OOM杀手杀死那个脚本,而不是apache.

有没有办法配置内核,以便我可以说不要杀死名为’apache2’的进程(或者至少让apache2成为它杀死的最后一件事)? apache和常规crons都以同一个用户(www-user)运行.

解决方法

通过实际调试为什么这个cron作业耗尽了这么多内存,听起来并不像是在解决问题的根本原因.

您可以尝试设置此选项

echo 1>的/ proc / sys目录/ VM / oom_kill_allocating_task

这将告诉OOM杀手杀死触发OOM条件的进程,但这不能保证是你的cron工作.您还可以在脚本中使用“ulimit -m”来设置要使用的最大驻留内存量.我认为你最好的选择是评估为什么cronjob耗尽了如此多的内存,以及它是否最适合其他主机或者被重写以消耗更少的内存.

猜你在找的Linux相关文章