防止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耗尽了如此多的内存,以及它是否最适合其他主机或者被重写以消耗更少的内存.

相关文章

文章浏览阅读1.8k次,点赞63次,收藏54次。Linux下的目录权限...
文章浏览阅读1.6k次,点赞44次,收藏38次。关于Qt的安装、Wi...
本文介绍了使用shell脚本编写一个 Hello
文章浏览阅读1.5k次,点赞37次,收藏43次。【Linux】初识Lin...
文章浏览阅读3k次,点赞34次,收藏156次。Linux超详细笔记,...
文章浏览阅读6.8k次,点赞109次,收藏114次。【Linux】 Open...