ivanovmt Опубликовано 16 июля, 2020 (изменено) · Жалоба Всем привет! Админю небольшую контору, которая предоставляет интернет в небольшом населённом пункте. Стоит у них роутер на centos с сетевушкой intel 82576 на 4 порта. На роутере крутится dhcp-server, ipset, 2 fullview и шейпер. Чистый роутинг - НАТа НЕТ. За последние пол года нагрузка на роутере увеличилась с 500мбит до 1гбита и начались проблемы с шейпером. Опишу как всё организовано: - На роутере установлен 12 ядерный процессор xeon - На каждый порт сетевой установлено 3 потока - Прерывания распределяются между всеми 12 ядрами (1 порт = 3 ядра) - На eth0 и eth1 повесили локалку (на eth0 - 10 вланов, на eth1 - 15 вланов) - На eth2 и eth3 - внешка (на eth2 - 2 влана и на eth3 - 2 влана) - Трафик с eth2 и eth3 направляется в ifb0 для шейпинга - Шейпер на хэш таблицах При нагрузке в 800мбит начинается сильный рост NET_TX на 6 ядрах (eth2, eth3) с 5-10к до 50-70к. При этом проявляется сильное проседание скорости у абонентов, которые шейпятся. Если делать тест скорости с самого роутера, то проседаний нет. Смотрю в ethtool - дропов и ошибок нет, счётчики стоят Куда ещё смотреть?Привожу конфиг шейпера: tc qdisc add dev eth2.50 ingress tc qdisc add dev eth2.75 ingress tc qdisc add dev eth3.101 ingress tc qdisc add dev eth3.102 ingress tc filter add dev eth2.50 parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0 tc filter add dev eth2.75 parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0 tc filter add dev eth3.101 parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0 tc filter add dev eth3.102 parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0 # /sbin/tc qdisc add dev ifb0 root handle 1: htb /sbin/tc class add dev ifb0 parent 1: classid 1:1 htb rate 2Gbit ceil 2Gbit # /sbin/tc filter add dev ifb0 parent 1: handle 2: protocol ip u32 divisor 256 /sbin/tc filter add dev ifb0 parent 1: protocol ip u32 ht 800:: match ip dst 0.0.0.0/0 hashkey mask 0xff000000 at 16 link 2: /sbin/tc filter add dev ifb0 parent 1: handle 3: protocol ip u32 divisor 256 /sbin/tc filter add dev ifb0 parent 1: protocol ip u32 ht 2:59: match ip dst 1.0.0.0/8 hashkey mask 0xff0000 at 16 link 3: /sbin/tc filter add dev ifb0 parent 1: handle 4: protocol ip u32 divisor 256 /sbin/tc filter add dev ifb0 parent 1: protocol ip u32 ht 3:bb: match ip dst 1.2.0.0/16 hashkey mask 0xff00 at 16 link 4: /sbin/tc filter add dev ifb0 parent 1: handle d: protocol ip u32 divisor 256 /sbin/tc filter add dev ifb0 parent 1: protocol ip u32 ht 4:28: match ip dst 1.2.40.0/24 hashkey mask 0xff at 16 link d: # /sbin/tc class add dev ifb0 parent 1:2 classid 1:2 htb rate 5mbit ceil 5mbit /sbin/tc qdisc add dev ifb0 parent 1:2 handle 2: sfq /sbin/tc filter add dev ifb0 parent 1: handle ::d protocol ip u32 ht d:55: match ip dst 1.2.40.85/32 flowid 1:2 UPD: Долго гуглил, единственное что нашёл - поиграться с задержкой между прерываниями с rx-usecs и tx-usecs (у меня эти значения равны 0), для начала попробую adaptive-rx и adaptive-tx. Пока сделать это не могу, при изменении параметров выходит ошибка: "Cannot set device coalesce parameters: Unknown error 524". В community интела пишут, что надо поставить последнюю версию драйвера. Займусь этим ночью.Может у кого-то есть другие предложения? Изменено 16 июля, 2020 пользователем ivanovmt Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 16 июля, 2020 · Жалоба Смешная нагрузка, её осилит даже не коредуо а дуалкоре котором уже 17 лет. Полагаю выбор проца очень не оптимальный, он для соплежуства данных а не для быстрого форвадинга, и может затыкаться на межядерных связях. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ivanovmt Опубликовано 16 июля, 2020 (изменено) · Жалоба 47 минут назад, Ivan_83 сказал: Смешная нагрузка, её осилит даже не коредуо а дуалкоре котором уже 17 лет. Полагаю выбор проца очень не оптимальный, он для соплежуства данных а не для быстрого форвадинга, и может затыкаться на межядерных связях. Сомневаюсь, что проблема в этом, без шейпера никаких затыков нет. При синтетических тестах спокойно 2гбита маршрутизировалось. Нагрузка на проц 1-2% что с шейпером что без. Изменено 16 июля, 2020 пользователем ivanovmt Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
jffulcrum Опубликовано 16 июля, 2020 · Жалоба 6 часов назад, ivanovmt сказал: роутер на centos И какой у нас Centos? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Saab95 Опубликовано 16 июля, 2020 · Жалоба Вы уже проверили настройки самого шейпера? Размер буфера там и прочее. На неких больших скоростях шейпить без большой буферизации нельзя, идут постоянные дропы. Попробуйте покопать в сторону увеличения буферов шейпера. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ivanovmt Опубликовано 17 июля, 2020 (изменено) · Жалоба 14 часов назад, jffulcrum сказал: И какой у нас Centos? Centos7 Ядро 3.10.0-1127.13.1.el7 Новый драйвер не помог, tx-usecs поменять не удаётся Такая вот картина: 11 часов назад, Saab95 сказал: Вы уже проверили настройки самого шейпера? Размер буфера там и прочее. На неких больших скоростях шейпить без большой буферизации нельзя, идут постоянные дропы. Попробуйте покопать в сторону увеличения буферов шейпера. Делал всевозможные манипуляции, никакого эффекта Изменено 17 июля, 2020 пользователем ivanovmt Дополнение Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
taf_321 Опубликовано 17 июля, 2020 · Жалоба 22 часа назад, ivanovmt сказал: /sbin/tc qdisc add dev ifb0 parent 1:2 handle 2: sfq Вы точно хотите заниматься "равноправным" распределением трафика внутри клиентского трафика? На мой взгляд оператору нужно заниматься распределением трафика между клиентами, а вот перераспределением ресурса в рамках клиенского класса пусть сам клиент занимается. Попробуйте поменять дисциплину с sfq на pfifo, возможно полегчает. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ivanovmt Опубликовано 17 июля, 2020 (изменено) · Жалоба 28 минут назад, taf_321 сказал: Вы точно хотите заниматься "равноправным" распределением трафика внутри клиентского трафика? На мой взгляд оператору нужно заниматься распределением трафика между клиентами, а вот перераспределением ресурса в рамках клиенского класса пусть сам клиент занимается. Попробуйте поменять дисциплину с sfq на pfifo, возможно полегчает. Спасибо за совет, попробую. На самом деле изначально всё работало с приоритезацией. На icmp, voip и http трафик выделялась гарантированная полоса и скорость делилась равномерно. Торрент не мог забрать всю полосу под себя. До введения приоритезации около 10% абонентов постоянно долбило тех поддержку. Постоянные заявки с жалобами на плохую скорость. Монтажник приходил к абоненту, вырубал торрент, и проблема решалась. Количество заявок на плохую скорость уменьшилось до 1-2 в месяц. Поэтому мне бы очень не хотелось уходить от "равноправного" распределения трафика. Сейчас начались проблемы с проседанием скоростей, пришлось убрать приоритезацию, но это не решило проблему. Изменено 17 июля, 2020 пользователем ivanovmt Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ivanovmt Опубликовано 17 июля, 2020 · Жалоба 1 час назад, taf_321 сказал: Вы точно хотите заниматься "равноправным" распределением трафика внутри клиентского трафика? На мой взгляд оператору нужно заниматься распределением трафика между клиентами, а вот перераспределением ресурса в рамках клиенского класса пусть сам клиент занимается. Попробуйте поменять дисциплину с sfq на pfifo, возможно полегчает. Попробовал pfifo, один фиг NET TX растёт до 100к и проявляются проседания Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Saab95 Опубликовано 17 июля, 2020 · Жалоба А приходящий и исходящие порты гигабитные? Нет ли проблем плана что трафик просто в них не влезает? То есть когда у вас шейпера нет, трафик идет и идет. Когда включаете шейпер у некоторых абонентов трафик отбрасывается, появляются дропы, абоненты перезапрашивают его с ресурсов и он снова дропается. Порой может быть до 10-15-20 процентов потерь входящего трафика при малых размерах буферов. Когда я советовал буфера увеличить то это до 5000-10000 а то и 20000 пакетов на каждого абонента. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
zhenya` Опубликовано 18 июля, 2020 · Жалоба Dhcp выносите на другой сервер. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vurd Опубликовано 18 июля, 2020 · Жалоба Отключить шейпер для теста? Собрать таки ipt_ratelimit? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pppoetest Опубликовано 18 июля, 2020 · Жалоба В 17.07.2020 в 13:51, ivanovmt сказал: На самом деле изначально всё работало с приоритезацией. На icmp, voip и http трафик выделялась гарантированная полоса и скорость делилась равномерно. Торрент не мог забрать всю полосу под себя. До введения приоритезации около 10% абонентов постоянно долбило тех поддержку. Постоянные заявки с жалобами на плохую скорость. Монтажник приходил к абоненту, вырубал торрент, и проблема решалась. Количество заявок на плохую скорость уменьшилось до 1-2 в месяц. Поэтому мне бы очень не хотелось уходить от "равноправного" распределения трафика. Придётся, у нас тоже был подобный феншуй и 4 полосы внутри абонского канала, когда цпулоад в чнн на брасе стал 60% на ядро, переехали на полисер, нагрузка упала в 2.5-3 раза 6 часов назад, vurd сказал: Собрать таки ipt_ratelimit? Таки тоже рекомендую, на него и переехали. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
kayot Опубликовано 19 июля, 2020 · Жалоба В 18.07.2020 в 09:08, zhenya` сказал: Dhcp выносите на другой сервер. +1. Хотя бы в отдельный влан и релей костылить. Дхцп сервер работающий на тех же интерфейсах при большом трафике превращает любой роутер в тыкву. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ser Опубликовано 20 июля, 2020 · Жалоба 16 hours ago, kayot said: +1. Хотя бы в отдельный влан и релей костылить. Дхцп сервер работающий на тех же интерфейсах при большом трафике превращает любой роутер в тыкву. Люто плюсую. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ivanovmt Опубликовано 20 июля, 2020 (изменено) · Жалоба В 18.07.2020 в 09:19, vurd сказал: Отключить шейпер для теста? Собрать таки ipt_ratelimit? Собрал, пока не получается настроить под входящую абонентскую скорость Пишу iptables -A FORWARD -m ratelimit --ratelimit-set out --ratelimit-mode src -j DROP Режет исход у абонента Пишу iptables -A FORWARD -m ratelimit --ratelimit-set in --ratelimit-mode dst -j DROP Ничего не происходит Пробовал указывать различные интерфейсы - не работает Изменено 20 июля, 2020 пользователем ivanovmt Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Crazy_Max Опубликовано 20 июля, 2020 · Жалоба 3 minutes ago, ivanovmt said: Режет исход у абонента Вы прям попробуйте на бумаге правила разрисовать и направления трафика, плюс осознание того фокта, что исходящая из интерфейса скорость это к абоненту. а входящая в интерфейс от него. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ivanovmt Опубликовано 20 июля, 2020 (изменено) · Жалоба Всем спасибо, ipt_ratelimit работает. С моим кол-вом трафика вообще никакую нагрузку не создаёт. Проблема решена. Но честно говоря сама работа полисера не радует: 1)Как только абонент начинает качать файл, нагрузка прыгает до 100мбит или до 1гбита в зависимости от порта 2)Установил скорость в 50мбит и включил торрент. iftop показывает среднюю нагрузку в 47мбит, пики до 65мбит, проседания до 40мбит Не знаю как на это отреагируют пользователи, посмотрим. Сам торрент клиент вроде как ровно показывает скорость. Есть мысли бизнес абонентов оставить на шейпере. Изменено 20 июля, 2020 пользователем ivanovmt Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alibek Опубликовано 20 июля, 2020 · Жалоба 14 минут назад, ivanovmt сказал: Но честно говоря сама работа полисера не радует Нужно понимать, как он работает и что от него следует ожидать. На скоростях от 10 Мбит/с правильная настройка burst позволяет свести к минимуму дискомфорт от полисинга. 15 минут назад, ivanovmt сказал: Есть мысли бизнес абонентов оставить на шейпере. Шейпинг можно применять на тарифах до 2 Мбит/с. Максимум до 5 Мбит/с. Если очень хочется, используйте очереди (если железо позволяет). Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Saab95 Опубликовано 21 июля, 2020 · Жалоба В 20.07.2020 в 15:13, alibek сказал: Шейпинг можно применять на тарифах до 2 Мбит/с. Максимум до 5 Мбит/с. Если очень хочется, используйте очереди (если железо позволяет). У нас шейпер и на тарифах 100-200-300М работает. Никаких проблем по нагрузке не создает. Основная масса абонентов с тарифами 30-100М. Ах да, у нас связки из двух микротиков, первый режет скорость - шейпер, второй делает НАТ. 2 штуки CCR1036 прокачивают 4-5Г в пиках. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pppoetest Опубликовано 21 июля, 2020 · Жалоба 4 часа назад, Saab95 сказал: Ах да, у нас связки из двух микротиков, первый режет скорость - шейпер, второй делает НАТ. 2 штуки CCR1036 прокачивают 4-5Г в пиках. И что? У нас 1 штука HP Proliant G8 и натит и режет скорость и прокачивает 4-5Г в пиках Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Saab95 Опубликовано 22 июля, 2020 · Жалоба 12 часов назад, pppoetest сказал: И что? У нас 1 штука HP Proliant G8 и натит и режет скорость и прокачивает 4-5Г в пиках И в чем суть? Указанный вами сервер больше подходит для других задач, а не роутинга. Во первых у него много медленных ядер, что для роутера не особо без нормального распараллеливания. Видели же что на форумах про CCR пишут - что одно ядро упирается в полку и это влияет на пропуск трафика? Мы, если надо на базе сервера собирать, покупаем последний I7 с большим количеством ядер на максимальной частоте, планку оперативки и серверный корпус простой, все собираем и такое решение на микротике 10Г тянет, упирается в скорости одной двухпортовой сетевушки 10Г. При этом цена дешевле б/у G8, которые дешевле 80 тыс в нормальном состоянии не продаются. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pppoetest Опубликовано 22 июля, 2020 · Жалоба 9 часов назад, Saab95 сказал: Во первых у него много медленных ядер, что для роутера не особо без нормального распараллеливания. Видели же что на форумах про CCR пишут - что одно ядро упирается в полку и это влияет на пропуск трафика? Нормально распараллеливать не умеет ваш недолинух на недожелезке, на обычном дистре можно крутить так как вздумается. И ни одно ядро не упирается в полку. 9 часов назад, Saab95 сказал: если надо на баз-е сервера собирать, покупаем последний I7 с большим количеством ядер Покажи мне I7 на 8 ядер, 4ггц на ядро и с 25мбайтами кэша. Есть? Нету? беда печаль. 9 часов назад, Saab95 сказал: При этом цена дешевле б/у G8, которые дешевле 80 тыс в нормальном состоянии не продаются. Мы на наге взяли за 82тыс, в нормально состоянии, к нему X520-DA2 c двумя десятками. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Saab95 Опубликовано 22 июля, 2020 · Жалоба 11 минут назад, pppoetest сказал: Покажи мне I7 на 8 ядер, 4ггц на ядро и с 25мбайтами кэша. Есть? Нету? беда печаль. Есть 8 ядер по 3.8. И где там на Б/У серверах ксеоны с 8 ядрами по 4ггц? Кроме всего не забывайте про то, сколько жрут эти б/у сервера, и частая причина замены старых на новое это как раз снижение энергопотребления. 16 минут назад, pppoetest сказал: Мы на наге взяли за 82тыс, в нормально состоянии, к нему X520-DA2 c двумя десятками. А мы собирали на новых комплектующих, и с микротиком он легко 10Г прогоняет. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pppoetest Опубликовано 22 июля, 2020 · Жалоба 25 минут назад, Saab95 сказал: И где там на Б/У серверах ксеоны с 8 ядрами по 4ггц? e5-2667-v2 25 минут назад, Saab95 сказал: Кроме всего не забывайте про то, сколько жрут эти б/у сервера Аж 160ватт, на два блока питания, кстати в микротик уже завезли два блока питания? 25 минут назад, Saab95 сказал: и с микротиком он легко 10Г прогоняет. С натом и нарезкой скоростей и бгп? Можно нотариально заверенных скриншотов, с cpu load? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...