Всем доброго здравия. Тема понятна - сейчас будем плакать. Имеем сервер доступа в интернет с 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
> надо. Но при достижении входящего трафика до 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, то есть любит детей. Было бы интересно узнать про сам процесс.
>[оверквотинг удален]
> Ты ничего не написал про важную цифру - 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. Падение интерфеса bond0 (входящий трафик) наблюдается независимо от загрузки ядра.
> При нагрузке 300-500Mbps в течении 3 минут обрушивается интферфейс. При этом CPU
> ну совсем мало. Т.е. загрузка ядра и падение интерфейса - разные
> вопросы.Разумеется, разные. Года 3 назад я возился с LACP, нарыл кучу открытых баг-репортов к ядру и Cisco tech support и плюнул. В ядрах 3.12+ и 4.xx перепахали весь сетевой стек, а известные руководства остались от более старых ядер.
> Выключить бонд - тогда как мне принять больше гигабита? принимать на отдельные
> сетевые карты и маршрутиризацией направлять в нужную карту определенный трафик?Вполне рабочий вариант. Если 2G только в аплинк, то туда сунуть порт(ы) свитча, а вниз раздавать 1G с маршрутизатором на каждом порту.
> P.S. Mpps большой. что то порядка 200 000 p/s200Kpps - это халява, должно работать <i>искаропки</i>, когда выключишь бонд и поставишь сетевые карты с TCP offload.
Про покупку раутер(ов) - сервер, который вы туда мастрячите, стоит минимум $2000. Пара человек по $1000/месяц - вот вы уже подобрались к цене нового Cisco ASR 901.
>> Выключить бонд - тогда как мне принять больше гигабита? принимать на отдельные
>> сетевые карты и маршрутиризацией направлять в нужную карту определенный трафик?
> Вполне рабочий вариант. Если 2G только в аплинк, то туда сунуть порт(ы)
> свитча, а вниз раздавать 1G с маршрутизатором на каждом порту.В Линуксе только режим LACP для бонда рабочий, ибо все остальное - чудеса на ровном месте.
> Про покупку раутер(ов) - сервер, который вы туда мастрячите, стоит минимум $2000.
> Пара человек по $1000/месяц - вот вы уже подобрались к цене
> нового Cisco ASR 901.Когда АССА рассказывает про необходимость под сервер в +2 админа, она тактично умалчивает, что для циски понадобится те же +2 сетевика, за те же деньги. При этом админы могут рулить серверной инфраструктурой целиком, а лишние 2 сетевика, кроме купленной на последние деньги циски, заниматься ничем не обучены.
>[оверквотинг удален]
>> Выключить бонд - тогда как мне принять больше гигабита? принимать на отдельные
>> сетевые карты и маршрутиризацией направлять в нужную карту определенный трафик?
> Вполне рабочий вариант. Если 2G только в аплинк, то туда сунуть порт(ы)
> свитча, а вниз раздавать 1G с маршрутизатором на каждом порту.
>> P.S. Mpps большой. что то порядка 200 000 p/s
> 200Kpps - это халява, должно работать <i>искаропки</i>, когда выключишь бонд и поставишь
> сетевые карты с TCP offload.
> Про покупку раутер(ов) - сервер, который вы туда мастрячите, стоит минимум $2000.
> Пара человек по $1000/месяц - вот вы уже подобрались к цене
> нового Cisco ASR 901.Избавиться от bond - не вариант. Трафик не 2G он выше, но дело не в этом. Для управления всем этим хозяйством написан (доморощенный) демон (с++ и asm) со своим web интерфейсом управления и мониторинга. И в нем входящие и исходящие интерфейсы заложены в виде единичного объекта. В принципе переписать не проблема, но маркетинг требует наличие таких групп, которые находясь на разных вланах (в разных сетях ) имеют один общий класс (полосу пропускания). Разнесем интерфейсы - такого не получим.
Покупка роутера. Честно говоря - не интересно. Начиналась эта эпопея не потому что надо сделать. Все это уже давно стоит и работает на куче серверов в стойке. Решил расширить кругозор - я ведь новичок :)
>[оверквотинг удален]
> нарезано например 50 мегабит. дает ровненько. В какой то момент времени
> - пошла такая ломаная... что капец.
> лечится restart службы. Лекарство не найдено.
> --- centos 6.9. А тут уже все по другому. Работает все как
> надо. Но при достижении входящего трафика до 800Mbps - ksoftirq и
> events вешают ядро. и все плывет. Тюнинг делал. Прерывания раскидывал. Повторюсь
> в фильтр с десяток правил - убирал.
> До гига добираюсь - ksoftirq 50% и events 50% на одном ядре.
> Соответственно больше ничего в него не лезет.
> HELP ME1. убрать bond как устарвшее г.о.в.н.о, link aggrigation лучше не использовать вовсе или если всё-же нужно то использовать team
2. на тарифах >4 мегабит использование шейпера по сравнению с полисингом не имеет смысли
3. ничего не сказано про железо, я надеюсь хоть карточки intel'овые?
4. не сказано ничего о сети, от слова совсем.5. и самое наверное важное, все провайдеры и soft-switching представлены на forum.nag.ru, рекомендую сразу туда.
>[оверквотинг удален]
>> Соответственно больше ничего в него не лезет.
>> 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 - хороший совет. Спасибо.
>[оверквотинг удален]
>> 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+ абонов.
>[оверквотинг удален]
> нарезано например 50 мегабит. дает ровненько. В какой то момент времени
> - пошла такая ломаная... что капец.
> лечится restart службы. Лекарство не найдено.
> --- centos 6.9. А тут уже все по другому. Работает все как
> надо. Но при достижении входящего трафика до 800Mbps - ksoftirq и
> events вешают ядро. и все плывет. Тюнинг делал. Прерывания раскидывал. Повторюсь
> в фильтр с десяток правил - убирал.
> До гига добираюсь - ksoftirq 50% и events 50% на одном ядре.
> Соответственно больше ничего в него не лезет.
> HELP MEВсем спасибо! Особенно Анониму. Уважаемые новички - на каждый ваш вопрос найдется свой аноним. Я понимаю, - документации мало, подсказать как правило рядом некому. Но все равно выслушивать излияния в кавычках профессионалов - есть ли смысл?
Вопрос решен (удовлетворения не получено - но работает).
bond действительно устойчиво работает только в режиме 802.3a. Сетевая карта стояла хорошая, но одна с 4 портами. Т.е. с входящим и исходящим интерфейсом на одном физическом устройстве. Разнес по двум устройствам. Загрузка ядра сразу упала, причем загруженность ksoftirq и events стала ассиметричной. Собственно сейчас полная нагрузка на интерфейсы дает загруженность до 20% (и это все iptable)
Собственно говоря вопрос закрыт. Еще раз всем не пославшим спасибо.
P.S. Жалею что обратился с вопросом. Никогда не обращался и теперь жалею. Нельзя менять привычки
> Я понимаю, - документации мало, подсказать как правило рядом некому.документации как раз овердофига, но для того что бы до неё добраться надо:
1) владеть английским
2) уметь задавать вопросы гуглу
3) не быть хныкающим студентом> P.S. Жалею что обратился с вопросом. Никогда не обращался и теперь жалею.
> Нельзя менять привычкиессно, ты их задавать не умеешь и какуюто чепуху пишешь
а потом все тебе виноваты, видети-ли мордой ткнули что ты олень даже вопрос грамотно поставить не можешь - а ты сразы хнык-хнык и жмак на кнопку жалобы модерасту
сразу бы по человечески задал вопрос - получил бы грамотный ответ без издевательств над твоим ничтожным IQ
у меня таких шлюзов не один десяток сынок, если б ты спросил по человечески я б тебе сразу по человечески сказал и про бонд и про gre и про softirq
ещё раз повторю -> научись вопросы задавать, форум тебе не твоя мамка которой можно плакаться
> Жалею что обратился с вопросом. Никогда не обращался и теперь жалею.ну это классика, по крайней мере в русскоязычном инете - http://image.monk.com.ua//images/articles/zhiznennaja-statis...