如何防止长时间运行的备份作业被杀死

时间:2016-10-03 16:06:12

标签: linux memory-management backup tar

如何防止长时间运行的内存密集型基于tar的备份脚本被杀?

我有一个cron作业,每天运行一个命令,如:

tar --create --verbose --preserve-permissions --gzip --file "{backup_fn}" {excludes} / 2> /var/log/backup.log

它写入外部USB驱动器。通常生成的文件是100GB,但是在我升级到Ubuntu 16之后,现在日志文件显示该过程被杀死了大约25%,大概是因为它消耗了大量内存和/或使系统负载太大

如何告诉内核不要杀死这个进程,或者调整它以便它不会消耗那么多需要被杀死的资源?

1 个答案:

答案 0 :(得分:2)

如果您确定 - 由于消耗了太多内存而导致死亡,那么您可以尝试增加swappiness中的/proc/sys/vm/swappiness值。通过增加swappiness,您可以摆脱这种情况。您也可以尝试调整oom_kill_allocating_task,默认为0,它会尝试查找胭脂记忆占用任务并杀死该任务。如果您将其更改为1,则oom_killer将终止调用任务。

如果以上都不起作用,那么您可以在oom_score_adj下尝试/proc/$pid/oom_score_adjoom_score_adj接受从-10001000的值范围。降低被oom_killer杀死的可能性。如果将此值设置为-1000,则会禁用oom kill。但是,你应该知道你在做什么。

希望这会给你一些想法。