контролировать и убивать побег процессов, используя 100% ввода-вывода? - PullRequest
1 голос
/ 07 мая 2010

У меня есть несколько процессов, которые должны запускаться с высоким приоритетом (chrt 98), которые время от времени решают жестко блокировать и привязывать 1 ядро ​​на 100% (не так уж много), но что более важно, он будет использовать все операции ввода-вывода в системе столько, что невозможно войти в систему через ssh, чтобы убить ее или выполнить какую-либо задачу на машине, которая не загружена в ram. Если у меня уже есть что-то вроде htop, я могу нормально завершить процесс. Существуют ли какие-либо утилиты / способы для мониторинга этого типа процесса сбоя и уничтожения всего, что использует 100% системного ввода-вывода в течение более чем X времени? Спасибо!

Ответы [ 3 ]

0 голосов
/ 07 мая 2010

Если приложение использует дисковый ввод-вывод, можете ли вы просто переместить файловые системы, к которым оно обращается, на отдельные диски? Таким образом, у вас будет IO, чтобы сэкономить на дисках, на которых установлена ​​ОС, и вы сможете войти в систему и управлять (т.е. уничтожать!) Процессом.

0 голосов
/ 13 мая 2010

Как сказал другой автор, запуск процесса с nice - это путь, но вы упомянули, что хотите запустить его с высоким приоритетом, что странно ... имейте в виду, что если вы работаете процесс с наивысшим приоритетом и его привязка, ваша система мониторинга, возможно, даже не сможет убить его, если ваш монитор все еще не имеет более высокий приоритет. Во всяком случае ....

бог , а также некоторые другие инструменты управления процессами могут легко убить процесс, если он плохо себя ведет, одним из нескольких способов. Вы можете сказать: «после пяти проверок обнулите его, если он постоянно превышал загрузку ЦП на 98%»:

  restart.condition(:cpu_usage) do |c|
    c.above = 98.percent
    c.times = 5
  end

Другой, отличный от вас взгляд - это chpst из системы runit - он позволяет вам элегантно устанавливать границы для вещей (но для ограничения ЦП, nice по-прежнему инструмент, которого я бы достиг первый).

0 голосов
/ 07 мая 2010

Не можете ли вы запустить программу с nice (и с более низким приоритетом)? Таким образом, по крайней мере, вы сможете легко зайти в ящик и легко его убить.

Лучшим решением, конечно, было бы исправление поведения процесса-нарушителя (требуются подробности).

Этот поток с ошибками сервера также, кажется, содержит то, что вы просите конкретно.

...