Проблема сети при большом количестве подключений

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

Аватара пользователя
ffault
Сообщения: 12

Проблема сети при большом количестве подключений

Сообщение ffault »

Ось: Fedora8
ЦПУ - П4
ОЗУ - 2Гб
на машине - сервис Verlihub (сервер p2p файлокачалки).
Пока количество пользователей было небольшое (несколько сот) все прекрасно бегало.
Но было принято решение о слиянии нескольких хабов, в один, причем-мой.
Таким образом мне досталось около 2к клиентов.

теперь собственно сабж:
Сначала при достижении количества подключений ~1010-1030 новые подключения не происходили. т.е. запрос на соединение клиентом посылался и все. Также тормозила и сеть вообще, причем при незначительной загрузке.
при выполнении "netstat | grep SYN" наблюдалось огромное количество полу законекченных пользователей.

Код: Выделить всё

[root@net]# netstat -n  | grep SYN
tcp        0      0 10.105.200.4:411            10.102.115.253:2149         SYN_RECV    -
tcp        0      0 10.105.200.4:411            10.9.12.20:1606             SYN_RECV    -
tcp        0      0 10.105.200.4:411            10.50.168.222:2399          SYN_RECV    -
tcp        0      0 10.105.200.4:411            10.60.20.28:3280            SYN_RECV    -
tcp        0      0 10.105.200.4:411            10.5.24.140:64243           SYN_RECV    -
......................

т.е. первая мысль - бока с системой, возможно с сетевым стеком.
нагуглил параметры sysctl - net.ipv4.tcp_max_syn_backlog и fs.file-max а также ulimit -n и ulimit -u
немного помогло, добился того, что количество одновременных соединений возросло примерно в полтора раза. но тормоза на хабе (в чате и при поиске) а также тормоза сетки остались. И оставшиеся пользователи все так же не могут соединиться.

загрузка системы незначительная ~7-10%. Траф на основном интерфейсе 7.5-8 Mb/s

вот бы кто подсказал, куда ее пнуть чоб она больше соединений открывала....
Изображение
Спасибо сказали:
Аватара пользователя
vr13
Сообщения: 887
ОС: gentoo

Re: Проблема сети при большом количестве подключений

Сообщение vr13 »

погуглите еще на тему параметров net.core.* (увеличения бэклога соединений и памяти под них)
Спасибо сказали:
Аватара пользователя
ffault
Сообщения: 12

Re: Проблема сети при большом количестве подключений

Сообщение ffault »

vr13 писал(а):
18.08.2008 23:49
погуглите еще на тему параметров net.core.* (увеличения бэклога соединений и памяти под них)

Размер беклога я увеличивал, а вот про память под соединения не подумал,
Спасибо, попробую, о результате - напишу.
Изображение
Спасибо сказали:
Аватара пользователя
ffault
Сообщения: 12

Re: Проблема сети при большом количестве подключений

Сообщение ffault »

vr13 писал(а):
18.08.2008 23:49
погуглите еще на тему параметров net.core.* (увеличения бэклога соединений и памяти под них)

на предмет этого нашел
net.ipv4.tcp_mem
net.core.wmem_default
net.core.rmem_default
net.core.wmem_max
net.core.rmem_max
для первого параметра поднял верхний предел в полтора раза, для остальных - в два раза, перезапустил приложение - особой разницы не чувствуется,
хотя может нада еще и "/etc/init.d/network restart" сделать?
Изображение
Спасибо сказали:
Аватара пользователя
vr13
Сообщения: 887
ОС: gentoo

Re: Проблема сети при большом количестве подключений

Сообщение vr13 »

ffault писал(а):
19.08.2008 13:44
для первого параметра поднял верхний предел в полтора раза, для остальных - в два раза, перезапустил приложение - особой разницы не чувствуется,
хотя может нада еще и "/etc/init.d/network restart" сделать?

рестартов делать точно не надо: вы все меняете at runtime level (однако нужно не забыть сохранить то, что поможет в дальнейшем)

из каких соображений "в два и полтора раза"? на самом деле, нужно просто поставить себе цель, в том чего нужно достичь - повышения производительности в обслуживании запросов. первое что вы сделали - увеличили очередь отложенных запросов (бэклог), когда фактически запрос не обслуживается, а ставится в очередь. теперь, вероятно нужно заняться ресурсами системы.. тут врядли можно дать верный совет, не видя и не экспериментируя.. посмотрите здесь и здесь
Спасибо сказали: