Услуги по маркировке убийств в условиях нехватки ресурсов
Мы используемsystemd --user
для запуска определенных собственных услуг. В некоторых случаях они «выходят из-под контроля» — порождают слишком много процессов, что истощает оперативную память и приводит к «зависанию» машины.
Когда это происходит, ядро пытается убить некоторые процессы, но недостаточно агрессивно в этом убийстве, что приводит к тому, что машина фактически зависает: новые ssh-логины и даже существующие на самом деле становятся непригодными для использования.
Можно ли каким-то образом сообщить ядру (заранее) об одном или нескольких из следующих действий:
- Установить общий лимит использования памяти всеми процессами, создаваемыми службой?
- Убить все процессы, запущенные службой, если она сочтет необходимым убить один из них?
- Начните убийство с помощью этого сервиса - если он вообще обнаружит необходимость что- либо убить?
Я не хочу налагать искусственные ограничения на дочерние элементы службы по отдельности — потому что, когда все в порядке, они должны использовать все оборудование...