Welcome! Log In Create A New Profile

Advanced

Re: Проксирывание и tcp стек.

Maxim Dounin
December 24, 2010 07:18AM
Hello!

On Fri, Dec 24, 2010 at 10:18:26AM +0300, duke wrote:

> Добрый день!
>
> На днях получил забавный опыт.
> Есть сайт который надо было тупо запросксирывать и балансирывать загрузку
> между 6 бекэндами.
> При этом вознкла такая проблема: в логах стречались очень частые таймауты,
> при этом нагрузка на бекэнды была не вилика.
> Все запросы шли с одного ип до бекэнодов.
>
> Для диагностики сетети (неизвестно что было межу серверами), я пробывал
> утилитой hping устанавливать соеденение с одним из бекэндов, ответ от
> которго меня часто удивлял.
> То есть я отпарляю tcp пакет с флагом SYN... и как сложилось по традиции жду
> в ответ SYN ACK. Но внезапно в ответ получаю что то типа ответа от веб
> сервера (запроса самого еше и небыло, tcp флаги в ответе например "ACK FIN
> PUSH" либо еше какие отличные от "SYN ACK"). То есть явно я угодил в "чужую"
> tcp сессию. Это повторялось часто, причем были и нормальные tcp хендшейки но
> через раз два.

Если я правильно понимаю что делает hping (отправляет произвольные
пакеты с какими скажешь параметрами миную tcp-стек системы, и
слушает произвольные ответы через bpf/pcap), то ничего
удивительного в полученном результате нет. Вы отправили пакет, а
какой-то пролетающий мимо чужой пакет приняли за ответ.

> net.ipv4.ip_local_port_range уже подкрутили....
>
> Может есть у кого идеи что еше можно сделать?

1. Если несмотря на увеличение port range локальных портов всё
равно не хватает - включить reuse/recycle для соединений в
TIME_WAIT.

2. Убедиться, что между фронтендом и бекендами не установлен
statefull firewall. Если установлен - убрать или добавить исключение
чтобы соединения frontent -> backend проходили через firewall без
создания state'ов. В самом крайнем случае - убедиться, что
state'ов достаточно, и сильно уменьшить таймауты для TIME_WAIT.

Ну и смотреть внимательно где ещё чего не хватает и что тормозит,
параллельно читая документацию по тюнингу вашей операционной
системы.

Maxim Dounin

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Проксирывание и tcp стек.

duke December 24, 2010 02:20AM

Re: Проксирывание и tcp стек.

Maxim Dounin December 24, 2010 07:18AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 315
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready