The OpenNET Project / Index page

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

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

"centos (слезы новичка)"  +/
Сообщение от fxobject (ok) on 15-Апр-17, 21:03 
Всем доброго здравия. Тема понятна - сейчас будем плакать. Имеем сервер доступа в интернет с 4 портами ethernet. 2 порта входящий и два исходящий. Порты связаны в bond и на входящем bond(е)  установлены VLAN. Простая  маршрутиризация. iptables ну наверное правил 10 не больше. там в общем то ставятся метки TOS, что то блокируется ... чуть чуть. Кроме этого реализован "шейпер" на основе хэш таблиц.
Начинаем плакать :
--- centos 7 (ядро по моему 3... какое то)... все классно до двух гигов промалывает трафик. красота!!! Но вот беда - звонит какой то абонентик и говорит - у меня не работает. Оказывается у него GRE... не проходит. Собрал тестовую схему.... действительно не проходит. Причем на удаленной стороне ставил WEB. Страничку я все таки получал... Но лучше б он ее не отправлял. приходят какие то рваные куски от страницы. Если тут советовать что то типа ip_gre - танцевал!!! Честно скажу - ночами танцевал. Не помогло. Единственный внятный ответ - меняйте ядро. Ладно - меняем...
--- centos 7 (ядро 4.... какое то) GRE побежало - не успел догнать. Все вообще класс!!! Но ... появились нюансы. "Шейпер" находится на интерфесе bond, на нем ниже идут VLAN в сторону абонента. Так вот что оказалось что .... хэш фильтр ну ни как не хочет ловить пакеты в такой комбинации. На влане - ловит, на бонде без вланов - ловит. Вместе -!!++<> нет. Но это не беда - есть возможность сделать виртуальный интерфейс. Тоже интересный на самом деле вариант. Сделал - работает? :) На виртуальный интерфейс редирект идет. Первый хэш фильтр по номеру сети - тоже что то идет (но уже меньше меньше от виртуального). И в хэш по хостам - банан. После очередного танца перешли к более стабильным версиям 6
--- centos 6.8 - работает все... часа 3 кайфовал. Пошла нагрузка... входящий интерфейс брыньк и упал скотина. Спрашиваю его - что у тебя дружище случилось? в логах чистота. были  сообщения о r2q - посчитал и выставил как надо. но дело не в этом.... Ладно опять ждем... в какой то момент времени входящая скорость поплыла. Т.е. нарезано например 50 мегабит. дает ровненько. В какой то момент времени - пошла такая ломаная... что капец.
лечится restart службы. Лекарство не найдено.
--- centos 6.9. А тут уже все по другому. Работает все как надо. Но при достижении входящего трафика до 800Mbps - ksoftirq и events вешают ядро. и все плывет. Тюнинг делал. Прерывания раскидывал. Повторюсь в фильтр с десяток правил - убирал.
До гига добираюсь - ksoftirq 50% и events 50% на одном ядре. Соответственно больше ничего в него не лезет.
HELP ME
Ответить | Правка | Cообщить модератору

Оглавление

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


2. "centos (слезы новичка)"  +/
Сообщение от ACCA (ok) on 15-Апр-17, 23:10 
> надо. Но при достижении входящего трафика до 800Mbps - ksoftirq и
> events вешают ядро. и все плывет. Тюнинг делал. Прерывания раскидывал. Повторюсь

Практическое решение - купи (хотя бы недорогой) https://www.ubnt.com/edgemax/edgerouter-pro/ Он умеет делать TCP offloading на железном уровне.


Теоретическое решение - если есть время изрядно потрахаться, разобраться в деталях проблемы и написать приличную статью по теме:

Поначалу выключи iptables, shaping и проч и добейся стабильной маршрутизации без фокусов.

Bonding выключи - любой режим, кроме active-backup, имеет неприятные особенности и трудноуловимые глюки. Раскидывать им трафик можно разве что в качестве подлянки для админа, который придёт вместо тебя.

Ты ничего не написал про важную цифру - Mpps. Вот от неё и зависит частота прерываний = ksoftirq & events.

Покури статью http://rhelblog.redhat.com/2015/09/29/pushing-the-limits-of-.../ , обрати внимание на рассуждения по поводу NUMA, ключевые цифры 67.2нс и 12нс., количество DIMM на процессорный сокет, настройки XPS и проч.

Кстати, там есть забавное упоминание про "Ethernet flow control" и лимит 800Мbps, если в сетевой карте 8 очередей, 7 по 1Gbps, а одна 100Mbps.

[Из вежливости] отпишись, чего нашёл. Народ обычно применяет №1, то есть любит детей. Было бы интересно узнать про сам процесс.

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

4. "centos (слезы новичка)"  +/
Сообщение от fxobject (ok) on 16-Апр-17, 00:04 
>[оверквотинг удален]
> Ты ничего не написал про важную цифру - Mpps. Вот от неё
> и зависит частота прерываний = ksoftirq & events.
> Покури статью http://rhelblog.redhat.com/2015/09/29/pushing-the-limits-of-.../
> , обрати внимание на рассуждения по поводу NUMA, ключевые цифры 67.2нс
> и 12нс., количество DIMM на процессорный сокет, настройки XPS и проч.
> Кстати, там есть забавное упоминание про "Ethernet flow control" и лимит 800Мbps,
> если в сетевой карте 8 очередей, 7 по 1Gbps, а одна
> 100Mbps.
> [Из вежливости] отпишись, чего нашёл. Народ обычно применяет №1, то есть любит
> детей. Было бы интересно узнать про сам процесс.

1. Покупать ничего не будем - будем разбираться в вопросе.
2. Падение интерфеса bond0 (входящий трафик) наблюдается независимо от загрузки ядра. При нагрузке 300-500Mbps в течении 3 минут обрушивается интферфейс. При этом CPU ну совсем мало. Т.е. загрузка ядра и падение интерфейса - разные вопросы.
По вопросу CPU Если убираем установку TOS в PREROUTING (пара тройка правил) удается снизить нагрузку процентов на 15-20. Видно пересчет контрольных сумм пакетов съедает много ресурсов.
Фактически -F -t mangle
iptables  -F -t filter
и дает уменьшение на эти 15-20% (и все они целиком установка TOS - 3 правила )
выключение шейпинга - скорость уходит до 2 Гигов и как ни странно стабильно работает и нагрузки на процессор 0%.
без iptables - не вижу смысла -  все правила сбрасывал (выше писал) - и считаю это равносильно остановке iptable.(NAT нет)
Выключить бонд - тогда как мне принять больше гигабита? принимать на отдельные сетевые карты и маршрутиризацией направлять в нужную карту определенный трафик?
Статью пока не прочел но фраза Ethernet flow control" и лимит 800Мbps знакома. На первых порах на какой то из версии примерно на таких цифрах ложился интерфейс (противоположный чем в настоящее время). Он воткнут в свитч и на нем 802.3 ad. И на портах - flow control. Отключил - проблема ушла.
Ладно, все равно спасибо. Просто крик души :) разберусь.
P.S. Mpps большой. что то порядка 200 000 p/s

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

5. "centos (слезы новичка)"  +/
Сообщение от ACCA (ok) on 16-Апр-17, 01:16 
> 2. Падение интерфеса bond0 (входящий трафик) наблюдается независимо от загрузки ядра.
> При нагрузке 300-500Mbps в течении 3 минут обрушивается интферфейс. При этом CPU
> ну совсем мало. Т.е. загрузка ядра и падение интерфейса - разные
> вопросы.

Разумеется, разные. Года 3 назад я возился с LACP, нарыл кучу открытых баг-репортов к ядру и Cisco tech support и плюнул. В ядрах 3.12+ и 4.xx перепахали весь сетевой стек, а известные руководства остались от более старых ядер.


> Выключить бонд - тогда как мне принять больше гигабита? принимать на отдельные
> сетевые карты и маршрутиризацией направлять в нужную карту определенный трафик?

Вполне рабочий вариант. Если 2G только в аплинк, то туда сунуть порт(ы) свитча, а вниз раздавать 1G с маршрутизатором на каждом порту.


> P.S. Mpps большой. что то порядка 200 000 p/s

200Kpps - это халява, должно работать <i>искаропки</i>, когда выключишь бонд и поставишь сетевые карты с TCP offload.


Про покупку раутер(ов) - сервер, который вы туда мастрячите, стоит минимум $2000. Пара человек по $1000/месяц - вот вы уже подобрались к цене нового Cisco ASR 901.

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

8. "centos (слезы новичка)"  +/
Сообщение от universite (ok) on 16-Апр-17, 10:08 
>> Выключить бонд - тогда как мне принять больше гигабита? принимать на отдельные
>> сетевые карты и маршрутиризацией направлять в нужную карту определенный трафик?
> Вполне рабочий вариант. Если 2G только в аплинк, то туда сунуть порт(ы)
> свитча, а вниз раздавать 1G с маршрутизатором на каждом порту.

В Линуксе только режим LACP для бонда рабочий, ибо все остальное - чудеса на ровном месте.

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

9. "centos (слезы новичка)"  +/
Сообщение от DeerFriend on 16-Апр-17, 10:37 
> Про покупку раутер(ов) - сервер, который вы туда мастрячите, стоит минимум $2000.
> Пара человек по $1000/месяц - вот вы уже подобрались к цене
> нового Cisco ASR 901.

Когда АССА рассказывает про необходимость под сервер в +2 админа, она тактично умалчивает, что для циски понадобится те же +2 сетевика, за те же деньги. При этом админы могут рулить серверной инфраструктурой целиком, а лишние 2 сетевика, кроме купленной на последние деньги циски, заниматься ничем не обучены.

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

11. "centos (слезы новичка)"  +/
Сообщение от fxobject (ok) on 16-Апр-17, 12:48 
>[оверквотинг удален]
>> Выключить бонд - тогда как мне принять больше гигабита? принимать на отдельные
>> сетевые карты и маршрутиризацией направлять в нужную карту определенный трафик?
> Вполне рабочий вариант. Если 2G только в аплинк, то туда сунуть порт(ы)
> свитча, а вниз раздавать 1G с маршрутизатором на каждом порту.
>> P.S. Mpps большой. что то порядка 200 000 p/s
> 200Kpps - это халява, должно работать <i>искаропки</i>, когда выключишь бонд и поставишь
> сетевые карты с TCP offload.
> Про покупку раутер(ов) - сервер, который вы туда мастрячите, стоит минимум $2000.
> Пара человек по $1000/месяц - вот вы уже подобрались к цене
> нового Cisco ASR 901.

Избавиться от bond - не вариант. Трафик не 2G он выше, но дело не в этом. Для управления всем этим хозяйством написан (доморощенный) демон (с++ и asm) со своим web интерфейсом управления и мониторинга. И в нем входящие и исходящие интерфейсы заложены в виде единичного объекта. В принципе переписать не проблема, но маркетинг требует наличие таких групп, которые находясь на разных вланах (в разных сетях ) имеют один общий класс (полосу пропускания). Разнесем интерфейсы - такого не получим.
Покупка роутера. Честно говоря - не интересно. Начиналась эта эпопея не потому что надо сделать. Все это уже давно стоит и работает на куче серверов в стойке. Решил расширить кругозор - я ведь новичок :)

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

10. "centos (слезы новичка)"  +/
Сообщение от тень_pavel_simple on 16-Апр-17, 10:47 
>[оверквотинг удален]
> нарезано например 50 мегабит. дает ровненько. В какой то момент времени
> - пошла такая ломаная... что капец.
> лечится restart службы. Лекарство не найдено.
> --- centos 6.9. А тут уже все по другому. Работает все как
> надо. Но при достижении входящего трафика до 800Mbps - ksoftirq и
> events вешают ядро. и все плывет. Тюнинг делал. Прерывания раскидывал. Повторюсь
> в фильтр с десяток правил - убирал.
> До гига добираюсь - ksoftirq 50% и events 50% на одном ядре.
> Соответственно больше ничего в него не лезет.
> HELP ME

1. убрать bond как устарвшее г.о.в.н.о, link aggrigation лучше не использовать вовсе или если всё-же нужно то использовать team
2. на тарифах >4 мегабит использование шейпера по сравнению с полисингом не имеет смысли
3. ничего не сказано про железо, я надеюсь хоть карточки intel'овые?
4. не сказано ничего о сети, от слова совсем.

5. и самое наверное важное, все провайдеры и soft-switching представлены на forum.nag.ru, рекомендую сразу туда.

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

12. "centos (слезы новичка)"  +/
Сообщение от fxobject (ok) on 16-Апр-17, 12:59 
>[оверквотинг удален]
>> Соответственно больше ничего в него не лезет.
>> HELP ME
> 1. убрать bond как устарвшее г.о.в.н.о, link aggrigation лучше не использовать вовсе
> или если всё-же нужно то использовать team
> 2. на тарифах >4 мегабит использование шейпера по сравнению с полисингом не
> имеет смысли
> 3. ничего не сказано про железо, я надеюсь хоть карточки intel'овые?
> 4. не сказано ничего о сети, от слова совсем.
> 5. и самое наверное важное, все провайдеры и soft-switching представлены на forum.nag.ru,
> рекомендую сразу туда.

Настрой понятен. Во многом соглашусь.
1 здесь я бы поспорил - но это неважно
2 согласен
3 не в бровь - а в глаз - занимаюсь
4 это нам не поможет. ну собственно говоря - простая маршрутиризация. что пришло, то ушло.
  ipv4. На самом сервере DNS,сервер времени (mysq - обслуживает демон контроля и управления tc и iptable) и капец.
фильтр INPUT принимает только 53 порт. Да собственно флуд как таковой в замечен не был.

policing - хороший совет. Спасибо.

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

13. "centos (слезы новичка)"  +/
Сообщение от тень_pavel_simple on 16-Апр-17, 17:45 
>[оверквотинг удален]
>> 1. убрать bond как устарвшее г.о.в.н.о, link aggrigation лучше не использовать вовсе
>> или если всё-же нужно то использовать team
>> 2. на тарифах >4 мегабит использование шейпера по сравнению с полисингом не
>> имеет смысли
>> 3. ничего не сказано про железо, я надеюсь хоть карточки intel'овые?
>> 4. не сказано ничего о сети, от слова совсем.
>> 5. и самое наверное важное, все провайдеры и soft-switching представлены на forum.nag.ru,
>> рекомендую сразу туда.
> Настрой понятен. Во многом соглашусь.
> 1 здесь я бы поспорил - но это неважно

бесполезно спорить, этот старый модуль имеет тьму локов

> 4 это нам не поможет. ну собственно говоря - простая маршрутиризация. что
> пришло, то ушло.
>   ipv4. На самом сервере DNS,сервер времени (mysq - обслуживает демон
> контроля и управления tc и iptable) и капец.

кэширующий DNS на policer'е? ни разу DDoS'ов не видели чёли? и DNS amplification тожа не знакомы?

> фильтр INPUT принимает только 53 порт. Да собственно флуд как таковой в
> замечен не был.
> policing - хороший совет. Спасибо.

нормальная машина с обычным Debian'ом тащит 3.5 Mpps, с оптимизацией >6 Mpps. Сюда входит policyng на 80K+ абонов.

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

15. "centos (слезы новичка)"  +/
Сообщение от fxobject (ok) on 17-Апр-17, 07:56 
>[оверквотинг удален]
> нарезано например 50 мегабит. дает ровненько. В какой то момент времени
> - пошла такая ломаная... что капец.
> лечится restart службы. Лекарство не найдено.
> --- centos 6.9. А тут уже все по другому. Работает все как
> надо. Но при достижении входящего трафика до 800Mbps - ksoftirq и
> events вешают ядро. и все плывет. Тюнинг делал. Прерывания раскидывал. Повторюсь
> в фильтр с десяток правил - убирал.
> До гига добираюсь - ksoftirq 50% и events 50% на одном ядре.
> Соответственно больше ничего в него не лезет.
> HELP ME

Всем спасибо! Особенно Анониму. Уважаемые новички - на каждый ваш вопрос найдется свой аноним. Я понимаю, - документации мало, подсказать как правило рядом некому. Но все равно выслушивать излияния в кавычках профессионалов - есть ли смысл?
Вопрос решен (удовлетворения не получено - но работает).
bond действительно устойчиво работает только в режиме 802.3a. Сетевая карта стояла хорошая, но одна с 4 портами. Т.е. с входящим и исходящим интерфейсом на одном физическом устройстве. Разнес по двум устройствам. Загрузка ядра сразу упала, причем загруженность ksoftirq и events стала ассиметричной. Собственно сейчас полная нагрузка на интерфейсы дает загруженность до 20% (и это все iptable)
Собственно говоря вопрос закрыт. Еще раз всем не пославшим спасибо.
P.S. Жалею что обратился с вопросом. Никогда не обращался и теперь жалею. Нельзя менять привычки

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

16. "centos (слезы новичка)"  +/
Сообщение от Аноним (??) on 17-Апр-17, 18:34 
> Я понимаю, - документации мало, подсказать как правило рядом некому.

документации как раз овердофига, но для того что бы до неё добраться надо:
1) владеть английским
2) уметь задавать вопросы гуглу
3) не быть хныкающим студентом

> P.S. Жалею что обратился с вопросом. Никогда не обращался и теперь жалею.
> Нельзя менять привычки

ессно, ты их задавать не умеешь и какуюто чепуху пишешь
а потом все тебе виноваты, видети-ли мордой ткнули что ты олень даже вопрос грамотно поставить не можешь - а ты сразы хнык-хнык и жмак на кнопку жалобы модерасту
сразу бы по человечески задал вопрос - получил бы грамотный ответ без издевательств над твоим ничтожным IQ
у меня таких шлюзов не один десяток сынок, если б ты спросил по человечески я б тебе сразу по человечески сказал и про бонд и про gre и про softirq
ещё раз повторю -> научись вопросы задавать, форум тебе не твоя мамка которой можно плакаться


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

17. "centos (слезы новичка)"  +/
Сообщение от ALex_hha (ok) on 19-Апр-17, 13:49 
> Жалею что обратился с вопросом. Никогда не обращался и теперь жалею.

ну это классика, по крайней мере в русскоязычном инете - http://image.monk.com.ua//images/articles/zhiznennaja-statis...

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

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

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




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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