Прерванные соединения с сервером. Haproxy + Nginx + Единорог

Некоторые запросы к моему сайту были с ошибкой "Сервер неожиданно разорвал соединение", и в журналах ошибок нет ошибок.

Обороты 1-1.2к.

Есть ли у вас какие-либо идеи?

Вот конфиги haproxy, nginx и единорога:

https://gist.github.com/releu/59b7f1d649c681856320

2 ответа

Решение

Перед тем, как поделиться журналами, что очень важно, у вас неверная конфигурация:

  1. Nginx worker_connections 3000 Причина: держите его в 2-3 раза больше, чем число активных соединений

  2. Nginx worker_rlimit_nofile 20000. Причина: каждое отдельное соединение требует 2 файловых дескриптора для обслуживания запроса через прокси

  3. Nginx - отсутствие расположения, которое обслуживает статические файлы прямо из обхода файловой системы. Причина: если вы передаете статический файл через бэкэнд, он очень быстро достигает предела

  4. Unicorn worker_processes 4. Причина: 4 рабочих недостаточно для обслуживания 1K об / мин

  5. Система: Я думаю, что не хватает оптимизации ядра. Ознакомьтесь с советами Unicorn System Kernel

Похоже, что это может быть проблема с вашей конфигурацией Unicorn - она ​​имеет отставание 1024, что может вызвать некоторые проблемы, несмотря на то, что это настройка по умолчанию.

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

Может также стоить следить за ресурсами вашей системы, когда это происходит. Пожалуйста, дайте нам знать, как это идет для вас!

Другие вопросы по тегам