Deshene
@Deshene

Почему подвисают воркеры Unicorn'a?

Некоторое время назад заметил странную вещь - время от времени сервер просто перестает на некоторое время обрабатывать запросы. В выводе top'a это выглядить следующим образом:
* десять воркеров Unicorn'a что-то делают, что-то обрабатывают;
* потом, непонятно почему, они перестают что-то делать, т.е. у всех десяти воркеров статус sleeping;
* секунд десять-пятнадцать-двадцать воркеры не работают;
* после этого как по команде, они вдруг начинают все разом работать и обрабатывать запросы накопившиеся в очереди nginx'a.

Сетап следующий:
nginx, unicorn 4.6.2, postgres, redis для сессий и кэша. MRI ruby 2.0.0p353

Сначала я подумал, что может дело в редисе (потому что, если он не отдает сессии, то все процессы заблочаться в ожидании), но похоже, что не в нем, т.к. когда случается подвисание unicorn'a, redis нормально обслуживает процессы, которые обрабатывают фоновые задачи.

Не понимаю, в чем может быть дело.

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

UPDATE:

Спасибо fomistoklus, по-моему я понял в чем проблемы. Пару дней провалидирую и отпишусь о результатах.
  • Вопрос задан
  • 2667 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы