Страницы

Поиск по вопросам

среда, 10 октября 2018 г.

Как автоматически отслеживать и прибивать зависшие процессы в Linux?

Есть боевой сервер на нем висит софт, временами происходит утечка при обработке файла и в итоге все виснет, я рассматриваю вариант как то отслеживать подвисший процесс и прибивать его когда процесс переваливает например за какие то пределы. Есть ли какой то инструмент для реализации этой функции?


Ответ

ulimit -v - (см. help ulimit). Можно ограничить максимальный размер виртуальной памяти процесса (в килобайтах) -- распространяется на потомков, но по каждому считается отдельно. Так же можно ограничить суммарный размер записываемых файлов, процессорное время, количество нитей.
Если программа слишком нагружает процессор, можно понизить её приоритетность (увеличив номер уровня приоритета) командами nice или renice. То же самое, но в конкуренции за доступ к диску меняет ionice (но тут немного сложнее и работает не всегда).
Если программа без особой причины постоянно нагружает процессор, можно ограничить процент использования процессора с помощью cpulimit. Эта утилита так же может завершать наблюдаемый процесс вместо притормаживания.

Комментариев нет:

Отправить комментарий