Ivanovo Linux Users Group -  
Форум Помощь Поиск Вход
Предыдущая Следующая Вверх Тема Администрирование / Работа с сетью / Тормоза при большом кол-ве соединений. (78867 хитов)
- Написал(а) hawk Дата 04.04.11 05:20 Отредактировано 04.04.11 05:42
Добрый всем день!
Такая проблема существует, кто сталкивался. Канал полностью не занят, но существует огромное кол-во соединений, при этом наблюдается столбняк, т.е. как будто канал забит полностью. Сейчас в моде скайпы p2p разные и прочая ерунда (и торрент иногда нужен отдельным VIP товарищам), эта проблема все актуальнее. Если кто сталкивался, как решал. Пока на ум приходит - ограничение конектов на каждый (или нужные) IP фаерволом, но не всем это понравится.

Отмечу, на гейтах везде держу FreeBSD. Если замечательная статья "FreeBSD для обслуживания 100-200 тысяч соединений (freebsd tcp optimization tune speed socket mbuf sendfile sysctl)" автор Сысоев Игорь Владимирович (кто не знает, его детище NGINX). Можно потюнить, да и тюнил домашний гейт, один фиг забивается коннектами. До этого бывало сетевой интерфейс отваливался на домашнем, из-за не хватки mbuf кластеров )))))))))).
Еще материалы: "Доклад Игоря Сысоева о настройке FreeBSD 7 для нагруженного веб-сервера"
echo "good..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
Parent - Написал(а) Bercut Дата 04.04.11 07:51
дык ты чето кошерное с трефильным мешаеш
где зависоны то на веб сервере или на гейте
русский язык подобен искуству кун-фу, и великий мастер никогда не применит его без необходимости...
Parent - Написал(а) hawk Дата 04.04.11 08:34 Отредактировано 04.04.11 08:38
Эти ссылки в целом показывают, как тюнить tcp/ip на большое кол-во соединений, дело там в памяти на сетевую подсистему, систему ядра (дефолтное - это усредненное значение), ограничение времени time_wait и т.д. А гейт это, или веб сервер - не важно.

p/s еще при торрентах всяких большое кол-во SYN_RECV присутствует, т.е. большое кол-во полуоткрытых соединений. На гейте, о котором речь используется PF, умолчательно все правила дописываются хвостом flags S/SA
echo "good..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
Parent - Написал(а) Bercut Дата 04.04.11 08:56
мля ну ты давай рассказывай мне как кто работает
гейт выше 3 его край 4 ого уровня модели оси не поднимается
а веб сервер работает на 7 ом разницу чуеш
так что все эти мбаф кластера это все к сокетам те к серверу в тч и веб
а при форварде (не путать с бсдшным форвардом в ipfw) пакетов используется совсем другая память и то мало
хотя и не помню точно как называется вся эта байда
русский язык подобен искуству кун-фу, и великий мастер никогда не применит его без необходимости...
Parent - Написал(а) hawk Дата 04.04.11 09:06 Отредактировано 04.04.11 09:15
Опять же на примере торрента, переполнение именно по mbuf кластер проходит и регулируется на низком уровне через sysctl - не говорил бы, если бы не сталкивался )))). Кол-во соединений смотрим netstat -na, наблюдаем огромное кол-во соединений, в том числе большое кол-во полуоткрытых - SYN_RECV. То что происходит выше, в приложении, фильтра приложений и т.д. - это мало интересует. По полуоткрытым, можно попробовать увеличить очереди полуоткрытых соединений (в состоянии SYN RECEIVED) и уменьшить, период времени хранения незавершенных подключений в состоянии SYN RECEIVED. Повторюсь, проблема именно при большом кол-ве соединений, какое приложение их вызывает и прочее, не важно. На данный момент рекорцмен - это торрент, как не крути :-).

---

>>где зависоны то на веб сервере или на гейте


не отвечает он по любому, хоть к нему подрубись по WEB или фтп или как угодно, хоть сам попытайся выйти в инет через NAT или Proxy (пофиг), канал занят из 2Мбит на 1Мбит максимум 1.5Мбит.
---

Есть такое понятие, как  SYN атака, при этом как раз наблюдается большое кол-во соединений, большое кол-во SYN RECEIVED соединений. Дело в том, что нынешний софт запросто при своей работе сделает то, что раньше называлось бы атакой ))))))))))).
echo "good..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
Parent - Написал(а) Bercut Дата 04.04.11 09:24
дык где зависон то ась?????
русский язык подобен искуству кун-фу, и великий мастер никогда не применит его без необходимости...
Parent - Написал(а) hawk Дата 04.04.11 10:06 Отредактировано 04.04.11 10:08
:-):-):-)
Я в начале писал, выглядит так как будто инет канал забит полностью. По инету не достучишься до сервера и с него в инет не выйдешь или через него (т.к. это шлюз в тырнет). Но на деле, инет канал то полностью не забит, понимаешь :-). Просто наблюдается большое кол-во соединений.
echo "good..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
Parent - Написал(а) Bercut Дата 04.04.11 11:26
усе ясно он застлял...
а вообще по делу я тут перечитал кой чего и понял что херово понял все в прошлый, а кой чего забыл, а кой чего поменялось
вощем кажися все что в сетевуху не плюнь все через мбафы идет на бсде, значить вывод надо тюнить розмер мбаф клястеров
максимальное количество соединений в ядре тоже увеличить трэба, и глядиш все это запорхает аки фанера над парижем...

а что же у нас в линуксах то по этому поводу делается, хоть в исходники лезь, а то уже ни кому верить нельзя, даже себе...
помню читал статейку про то как холиварились бсдешный стек и линуксовый у нас типа мбаф и круто все, а те им а у нас скбаф и куча костылей и тоже все заебца, а потом линуксоиды взяли и спи..онерили почти все из бзди, и холивар притух... было это не спи..соврать год толи 2006 толи 2007, может врут и не так все было, да и я тогда еще не так крут был мог не правильно понять что то...

ты хоть отпишись по результатам жестокого и бесчеловечного тюнинга
русский язык подобен искуству кун-фу, и великий мастер никогда не применит его без необходимости...
Parent - Написал(а) hawk Дата 04.04.11 11:40 Отредактировано 04.04.11 11:44
Ну судя по этой цитате:

>> При ситуации исчерпания числа свободных mbuf кластеров FreeBSD попадает в
>> состояние zonelimit и перестает отвечать на запросы по сети,
>> в top это выглядит как "zoneli". Единственная возможность как-то повлиять на
>> ситуацию - это зайти с локальной консоли и перезагрузить систему, уничтожить
>> процесс находящийся в состоянии "zoneli" невозможно. Для Linux 2.6.x данная проблема
>> тоже характерна, причем работать переставала даже консоль.


в лине проблема тоже имеет место быть.
По делу, кластера все натюнил, по ним нет проблем, увеличил все что можно, синкуки врубил синкешь и все тоже накрутил по максимуму и прочую ерунду, но все одно тормозня. Поэтому, как писал в первом посте, думаю, что осталось ограничивать кол-во соединений. Ограничивать SYN запросы с одного адреса, ограничивать полуоткрытые соединения и прочий флуд.
echo "good..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
Parent Написал(а) Bercut Дата 04.04.11 12:00
а то еще можно разнести гейт и веб сервак для чистоты ксперимента
ага и вместо гейтового сервака циску вкорячить хоть 800 на 2 то мегабита и ее хватит
вот дело есть занимайсо
русский язык подобен искуству кун-фу, и великий мастер никогда не применит его без необходимости...
Parent - Написал(а) LOE (Site/forum admin) Дата 04.04.11 19:07
Что-то я не совсем понял в чем суть топика...

В линуксе настраиваешь параметры ipv4 стэка и живешь не замечая загрузки
в частности:
/proc/sys/net/ipv4/tcp_keepalive_intvl
/proc/sys/net/ipv4/tcp_keepalive_probes
/proc/sys/net/ipv4/ip_conntrack_max
/proc/sys/net/core/somaxconn
/proc/sys/net/core/netdev_max_backlog
"No! Try not! Do. Or do not. There is no try." -- Yoda
Parent - Написал(а) Bercut Дата 04.04.11 19:30
да тут суть больше в том что надо мух от котлет отделить
а если держать все на одном серваке и при этом под какой никакой нагрузкой то проблемы будут всегда
потому что подход к конфигурированию под разные задачи принципиально разный, а тут получается сеть и сервис в одну кучу, а я этого охх как не люблю
русский язык подобен искуству кун-фу, и великий мастер никогда не применит его без необходимости...
Parent - Написал(а) LOE (Site/forum admin) Дата 04.04.11 19:59
Конечно. Мух от котлет отделять желательно.
Но когда нет возможности - используется что есть.

Например:
xeon E5335 (4 ядра) тянет 6 сетевых интерфейсов (2 на борту + 4-х портовка), занимается вебом, почтой, мускулем, тунелированием, бриджеванием.
При этом 3/4 суток идет всякая компрессия данных (считай одно ядро постоянно занято под завязку).

Сетевых задержек не замечено )
"No! Try not! Do. Or do not. There is no try." -- Yoda
Parent - Написал(а) Bercut Дата 04.04.11 21:00
я конечно дико извиняюсь, а бриджеванием то зачем, ужель нужна дико хитрая фильтрация L2, или обеднели настолько что лишнего гигабитного порта днем с огнем.... хех модернизация мля :-)
кстати как вариант отделения мух от котлет можно использовать esxi, халявно и круто, хотя в лубом раскладе сетевое железо должно быть отдельно от сервисового, на том стоим, это основной принцип управления инфраструктурой, иначе бардельеро...
или колхоз красный лапоть...
русский язык подобен искуству кун-фу, и великий мастер никогда не применит его без необходимости...
Parent - Написал(а) LOE (Site/forum admin) Дата 05.04.11 04:57
Соединяются сети в 2-х зданиях через сеть третьего лица.
Прямого своего линка [пока] нет.

ESXi подойдет опять-же для запуска нескольких сервисных виртуалок.
Сеть должна рулиться отдельной(-ыми) железкой - тут спора нет.
"No! Try not! Do. Or do not. There is no try." -- Yoda
Parent Написал(а) Bercut Дата 05.04.11 05:51
бриджевание с виланами чтоль
русский язык подобен искуству кун-фу, и великий мастер никогда не применит его без необходимости...
Parent - Написал(а) LOE (Site/forum admin) Дата 04.04.11 20:07
Ну и к слову о проблемах:
на 2-3 раза более мощной машине под управлением офтопика происходит следующее:
$ telnet smtphost 25
Trying smtp-host...
Connected to smtp-host.
Escape character is '^]'.
220 smtp-host Microsoft ESMTP MAIL Service ready at Tue, 5 Apr 2011 00:12:44 +0400
helo l
250 smtp-host Hello [host]
mail from: user@domain.ru
452 4.3.1 Insufficient system resources

Можно смеяться, можно плакать :-) Но эту машину и службу прочат на место мной поставленной машины в предыдущем посте :-)

Мне вот грустно.
А вы тут о 100-200к соединений говорите .........
"No! Try not! Do. Or do not. There is no try." -- Yoda
Parent - Написал(а) Bercut Дата 04.04.11 21:09
это тебя чиво понуждают богомерзким ексченьжом заниматься....
святотатство богохульство да ниспадут на них реки огненные и все такое...
а чёйто вдруг им мелгомягкий такой друг, это при общемедвепутном направлении на открытое ПО, ась?...
или у всех суббота, а у них там вот вокруг буквально метров на 50 четверг?...

вощем пора тебе как и всем путным людям валить к нам.
русский язык подобен искуству кун-фу, и великий мастер никогда не применит его без необходимости...
Parent - Написал(а) LOE (Site/forum admin) Дата 05.04.11 05:03
С.Б. это уже не моя забота - на прошлом месте работы.
Лоббировать линукс и открытые стандарты стало некому.

А на счет СПО - это у нас как всегда: на словах одно, а в жизни совсем другое. Если у кого-то есть подвязки на мс, или если знают только мс - двигают его.
Дело даже не в прямых откатах, просто такова сущность - влезать во что-то новое, прилагать свои усилия, никому не хочется.
Проще купить или нанять людей. А то, что это говно потом кому-то разгребать - никого не волнует. Люди (читай начальники) приходят и уходят, главное - урвать или "показать себя", после - хоть трава не расти.

От этого и грустно.
"No! Try not! Do. Or do not. There is no try." -- Yoda
Parent - Написал(а) Bercut Дата 05.04.11 07:18
С.Б. это что?
русский язык подобен искуству кун-фу, и великий мастер никогда не применит его без необходимости...
Parent - Написал(а) LOE (Site/forum admin) Дата 05.04.11 07:45
слава богу )
"No! Try not! Do. Or do not. There is no try." -- Yoda
Parent Написал(а) Bercut Дата 05.04.11 07:57
дык ты че ушел уже
куда писани в личку антиресно же
русский язык подобен искуству кун-фу, и великий мастер никогда не применит его без необходимости...
Parent - Написал(а) hawk Дата 05.04.11 07:01
Опять же есть и плюсы и минусы. Зависит от масштабов предприятия. Если компания средняя, то нет особого смысла в отделении сервисов по разным серверам, это только лишний геморой и лишний внешний вход. Плюс разделения сервисов (опять же не по соображениям нагрузки, в средней компании ее особо нет) если выходит из строя что-то, что-то продолжает работать.
echo "good..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
Parent - Написал(а) Bercut Дата 05.04.11 07:13
ну в целом то правильно говориш (хотя качай скил ясного изложения мыслей русскими буквами руками) про лишний гемор и тд, но где лишний вход то, или у тебя веб сервер голой попой на отдельном канале сидеть должен, нет девид блейн, ну её на хуй уличную магию...
русский язык подобен искуству кун-фу, и великий мастер никогда не применит его без необходимости...
Parent - Написал(а) hawk Дата 05.04.11 07:27 Отредактировано 05.04.11 07:41
Веб сервер надо в забугорных датацентрах арендовать (дедикейт), в российских нет смысла, качество не то, а держать его в фирме через ивановский инет )))))))))))))). Собственно под эти цели сервак есть за бугром, с полным дуступом через KVM на xeon и выполняет только роль веб сервака с майл листами.
Вот почту иногда держать при офисе надо, и вот ежели офис средний, то почта как отдельная машина, а шлюз отдельная - это сомнительная схема, еще учесть что при падении (а это в ивановке не редкость) инета, почта в локалке должна ходить (т.е. DMZ не катит). Может возникнуть идея с резервным каналом, но почта со своими привязками к IP DSN PTR и прочей ерундой, ну и внешний вход вот он тоже и лишний шлюз, по причине выше, почта в локалке должна ходить.
echo "good..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
Parent Написал(а) Bercut Дата 05.04.11 08:00
почта веб не суть
почему не катит dmz и почему серваку не пожить в локалке вообще?

про забугорные дата центры там свои грабли имеюцо, это потом можно обкашлять
русский язык подобен искуству кун-фу, и великий мастер никогда не применит его без необходимости...
Parent - Написал(а) hawk Дата 05.04.11 06:02 Отредактировано 05.04.11 06:20
Эт хорошо конечно, возможно у вас нет таких задач, которые здесь весь инет и мозг ..... Тут инет каждому, скайп каждому с видео, качать каждому, торрент не каждому, но если надо так надо, тимвиверы всякие и прочая хрень, засирают по полной.
Постоянно тестируются новые технологии и новые девайсы новомодные, которые часто также работают как P2P. Сейчас еще мультикаст подавай. В сетке 24 ч гоняются сотни гигабайт инфы, часто передается и получается во внешку из внешки через нат.
Речь не идет о почте и стандартном потреблении инета через проксик. При этом не упирается ни чего в мощность железа, да и по мониторингу общее потребление меньше, чем предоставляемый канал, но работать становиться не комфортно. Про веб сервер упомянул, но на деле нет ни каких высоконагруженных сервисов, просто шлюз+нат+проксик. А может и не в шлюзе дело, сетевые, кабели или оборудование. В общем разберусь, отпишу :-).
echo "good..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
Parent Написал(а) Bercut Дата 05.04.11 07:17
не ну если такое интенсивное использование, то может всетаки циску поставить, тем более как я говорил для 2х мегабитного канала хватит и 800, а она стоит копейки
другое дело если и она виснуть начнет тогда надо думать, дампить и снифать, апгрейдить и тюнинговать....
русский язык подобен искуству кун-фу, и великий мастер никогда не применит его без необходимости...
Предыдущая Следующая Вверх Тема Администрирование / Работа с сетью / Тормоза при большом кол-ве соединений. (78867 хитов)

Powered by mwForum 2.12.0 © 1999-2007 Markus Wichitill

Page created in 0.087s with 10 database queries.