Карьера переполнения стека подается примерно так:
user -> internet -> our fw -> nginx -> haproxy -> web farm
- FreeBSD - используемая операционная система
- на этом поле нет брандмауэра или QoS
- nginx обрабатывает наше SSL-завершение
- haproxy управляет балансировкой нагрузки
- nginx / haproxy разгоняются до 15 Мбит / с
Во время нормальной работы nginx получает HTTP-запрос, выполняет свою работу и передает запрос экземпляру haproxy, который привязан к адресу обратной связи (127.0.0.1) в том же блоке.
Чтобы на днях устранить неполадки, я переместил экземпляр haproxy на тот же интерфейс, на котором работал nginx. Это сразу добавило 100 мс задержки ко всем запросам. Этот интерфейс не является настоящим физическим интерфейсом, но интерфейс карпа .
Может кто-нибудь объяснить мне, почему это было так? Возможно, конфликт с очередью пакетов? Или, возможно, петля всегда быстрее, потому что она «мягкая»? Здесь есть кое-что фундаментальное, что я упускаю, и я надеюсь, что кто-то любезно обучит меня.