Ubuntu — процесс убивается ядром из-за потребления ресурсов. Можно ли разрешить ему выполняться долго (или частями)?
Не знаю, как правильно сформулировать вопрос, но кажется, что задача тривиальна и должна была быть решена много раз.
Сформулирую в общем:
Есть процесс, который при выполнении требует определенное количество ресурсов (например, локально - все работает, на слабом VPS - в определенный момент пишет killed и команда dmesg выводит Out of memory in UB...).
Задача стоит так, что этот процесс запускается относительно редко и допускается, чтоб он выполнялся произвольное время.
Понимаю, что легко вылечить более мощным железом, но всё же.
Как я понимаю, здесь не так важно, какой дистрибутив линукса, какое приложение вызывает процесс и т.д.. Если не прав - уточню полностью.
OOM Killer приходит когда ядру нехватает памяти, видимо ваш процесс слишком много потребляет памяти))).
Тут есть два варианта:
1. установите -1000 в /proc/$pid/oom_score_adj (при таком раскладе OOM прийдет но грохнет кого-то другого с меньшим значением oom_score_adj).
2. увеличьте своп. Таким образом объем виртуальной памяти увеличится, и при выполнении вашей задачи вы скорей всего начнете свопиться, но зато OOM не наступит. (И тратиться на железо не придется)
Ну и мониторьте этот ваш процесс, почему же он потребляет столько памяти? может тупо течет?