Могу ли я запретить использование пространства подкачки для определенного процесса (и его просто убить)?

При разработке какого-либо программного обеспечения тестируемая программа иногда ест всю память, а затем переходит на yomp в пространство подкачки и начинает измельчать диск, что приводит к предсказуемому падению реагирования на то, что я обычно переключаюсь на другой терминал для входа в систему и запустите процесс вручную.

Я бы хотел, чтобы этот конкретный процесс был убит, прежде чем он начнет есть пространство подкачки, как будто завтра нет. Я нашел страницу github, в которой обсуждались процессы убийства с сторожевым псом (и действительно, сделано) – https://github.com/rfjakob/earlyoom – и я мог немного изменить этот код, чтобы искать и убивать только эту конкретную ошибку но было бы неплохо, если бы я мог просто отказаться от использования пространства подкачки к номинированному процессу и заставить его просто убить. Я полагаю, что еще более неловко, для него будет хорошо получить небольшое количество пространства подкачки в обычном ходу вещей; это только тогда, когда в квесте нужно уничтожить всю память во вселенной, которую нужно убить.

One Solution collect form web for “Могу ли я запретить использование пространства подкачки для определенного процесса (и его просто убить)?”

Я не думаю, что есть способ ограничить пространство подкачки, если вы не измените программу, чтобы запрашивать не заменяемую память , что даже если возможно, вероятно, было бы непрактичным.

Однако то, что вы можете и должны делать, это ограничить общий объем памяти, доступный для процесса . Вы можете использовать cgroups (новый-обычный общий путь), ulimit ( setrlimit , традиционный способ) или инструмент тайм-аута .

Linux и Unix - лучшая ОС в мире.