Убить повешенных рабочих процессов единорога? - PullRequest
1 голос
/ 20 мая 2011

В настоящее время я запускаю большое приложение rails на виртуальном сервере. Моя установка использует Unicorn для обслуживания приложения Rails с nginx в качестве прокси-сервера впереди.

Время от времени я получаю уведомления о том, что загрузка моего ЦП зависла в течение длительного времени. Затем я вхожу в систему и использую htop, чтобы найти плохо себя ведущий процесс, чтобы убить его. Эти неправильные процессы всегда кажутся работниками единорога.

Что я хочу знать, так это то, есть ли способ настроить monit или бога, чтобы контролировать эти «дочерние процессы» единорога и убивать их, если они зависают при высокой загрузке процессора в течение длительного периода времени. Я знаю, как контролировать главный процесс единорога, потому что он записывает свой идентификатор процесса в файл PID. Но это никогда не главный процесс, только ребенок обрабатывает плохое поведение.

Ответы [ 2 ]

2 голосов
/ 23 мая 2011

Вы можете попробовать процесс, описанный здесь: Куда умирают Единороги: Наблюдение за рабочими-единорогами с монитором

Я еще этого не сделал, но скоро попробую.

Редактировать: Работает очень хорошо. Я использую методы там в производстве сейчас.

1 голос
/ 23 мая 2011

Я использую Бога, чтобы контролировать своих единорогов (это звучит слишком круто).Я использовал ту же конфигурацию, что и в GitHub, обозначенную здесь .Во втором Gist вы увидите собственный скрипт, написанный для мониторинга рабочих-единорогов.Это немного хакерски, но работает хорошо.Я верю, что что-то подобное должно слиться с Богом в какой-то момент.Но я ничего об этом не слышал некоторое время.

...