Nefer Wrote:
> Я, возможно, что то упустил,
> но каким образом кипаливы
> способны отожрать
> conntrack? Они все сидят в
> рамках одного TCP
> соединения!
>
Например так:
Вот настройки Nginx касающиеся keepalive
keepalive_timeout 45 60;
keepalive_requests 10000;
на location / стоят ограничения
limit_conn addr 10;
Смотрим кол-во conntrack
sysctl -a|grep net.ipv4.netfilter.ip_conntrack_count
net.ipv4.netfilter.ip_conntrack_count = 678
Теперь на клиентской машине запускаем
ab -n 1000000 -c 5 http://example.com/
Смотрим кол-во conntrack
sysctl -a|grep net.ipv4.netfilter.ip_conntrack_count
net.ipv4.netfilter.ip_conntrack_count = 65535
В dmesg
kernel: ip_conntrack: table full, dropping packet.
Cистема стала не управляема, ни один клиент не может соединиться ни с одним сервисом на машине. До тех пор пока сессии по таймаутам не отвалятся.
Хотелось бы избежать данной ситуации средствами приложения задав суммарное максимальное количество одновременных соединений, а также максимальное количество одновременных соединений для выбраных location, без проблем описанных Валентином Бартеневым