The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"снова sysctl - не работает tcp_max_syn_backlog"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Сеть. проблемы, диагностика / Linux)
Изначальное сообщение [ Отслеживать ]

"снова sysctl - не работает tcp_max_syn_backlog"  +/
Сообщение от Konstantin (??) on 17-Апр-12, 00:59 
Здравствуйте.

Меняю значение значение параметра в sysctl (дефолтное значение 512)
echo 1024 > /proc/sys/net/ipv4/tcp_max_syn_backlog
который в документации отвечает за буфер соединений в SYN_RECV.

Сам же зафлуживаю в локалке syn`ами. Однако:
root@web2:~# netstat -altpun|grep SYN|wc -l
256
Как до изменения, так и после
Что интересно, если (дефолтное значение 128)
root@web2:~# echo 256 > /proc/sys/net/core/somaxconn
и перезапустить nginx, тогда нетстат показывает 512 подключений.
Хотя, согласно документации, somaxconn вроде должен отвечать за количество незаассепленных соединений приложением, а у меня просто syn flood - там ничего заасептить то нельзя.

Далее, сколько не игрался этими параметрами, с включенными syncookie и без них, большее количество получить не удалось. Нагуглить как-то тоже. У всех просто работает параметр и всё. Может я проверяю как-нибудь не так...

Где ошибка?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "снова sysctl - не работает tcp_max_syn_backlog"  +/
Сообщение от Konstantin (??) on 17-Апр-12, 01:01 
Да, забыл написать, Ubuntu Linux 10.04 lts server.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "снова sysctl - не работает tcp_max_syn_backlog"  +1 +/
Сообщение от Aleksey (??) on 18-Апр-12, 00:31 
Здравствуйте,

tcp_max_syn_backlog и somaxconn - это глобальные системные лимиты. При старте каждое приложение может установить свои уникальные лимиты, отличающиеся от системных.

Например, для nginx параметр называется backlog, для Apache HTTPD - ListenBackLog, для Apache Tomcat - AcceptCount и т.д.

В вашем примере нужно установить следующие значения:
listen 80 backlog=1024

Ссылка на документацию http://wiki.nginx.org/HttpCoreModule#listen

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "снова sysctl - не работает tcp_max_syn_backlog"  +/
Сообщение от Konstantin (??) on 18-Апр-12, 16:22 
> Здравствуйте,
> tcp_max_syn_backlog и somaxconn - это глобальные системные лимиты. При старте каждое приложение
> может установить свои уникальные лимиты, отличающиеся от системных.
> Например, для nginx параметр называется backlog, для Apache HTTPD - ListenBackLog, для
> Apache Tomcat - AcceptCount и т.д.
> В вашем примере нужно установить следующие значения:
> listen 80 backlog=1024
> Ссылка на документацию http://wiki.nginx.org/HttpCoreModule#listen

Спасибо большое за ответ!

Моей главной ошибкой было рассмотрения somaxconn как параметра ограничивающего исключительно уже установленные соединения, чему поспособствовала неясная документация к параметру на kernel.org (http://www.kernel.org/doc/Documentation/networking/ip-sysctl...), а так же комментарий на хабре: http://habrahabr.ru/post/131469/#comment_4364610

Дошло до того, что с отчаяния в сорцы полез. Думал там и повязну. А там на самом видном месте (в net/core/request_sock.c)
/*
* Maximum number of SYN_RECV sockets in queue per LISTEN socket.
...
* Note : Dont forget somaxconn that may limit backlog too.
*/
int sysctl_max_syn_backlog = 256;

Ещё раз спасибо!

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру