Queue Tree загрузка CPU

RIP, OSFP, BGP, MPLS/VPLS
Vlad83
Сообщения: 11
Зарегистрирован: 14 ноя 2016, 12:52

Queue Tree загрузка CPU

Сообщение Vlad83 »

Здравствуйте!
Столкнулся со следующей проблемой на CCR-1036-8G-2S+ RouterOS v6.35.2 (stable).
Для шейпера используется Mangle + Queue Tree.
В ЧНН процесс queuing занимает 70-80% ресурсов CPU, трафика 850Мбит и pps 140k-150k, отсюда большие задержки и потери. При этом процесс firewall занимает в ЧНН 14-16% ресурсов CPU.
Где-то когда-то читал, что вендор рекомендует использовать Simple Queue, т.к. Queue Tree не параллелится между всеми ядрами равномерно.
В тоже время понимаю что 1300+ Simple Queue правил - не лучшее решение.
Подскажите пожалуйста, что можно ещё предпринять ? Или может в каком нибудь релизе решили эту проблему ? Просто очень не хочется тестировать релизы на боевой железке.

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

 /queue tree print 
Flags: X - disabled, I - invalid 
 0   name="10X10_In" parent=global packet-mark=M_10X10_In limit-at=0 queue=10X10_In priority=5 max-limit=0 burst-limit=0 burst-threshold=0 
     burst-time=0s bucket-size=0.1 

 1   name="10X10_Out" parent=global packet-mark=M_10X10_Out limit-at=0 queue=10X10_Out priority=5 max-limit=0 burst-limit=0 burst-threshold=0 
     burst-time=0s bucket-size=0.1 

 2   name="10X3_In" parent=global packet-mark=M_10X3_In limit-at=0 queue=10X3_In priority=5 max-limit=0 burst-limit=0 burst-threshold=0 
     burst-time=0s bucket-size=0.1 

 3   name="10X3_Out" parent=global packet-mark=M_10X3_Out limit-at=0 queue=10X3_Out priority=5 max-limit=0 burst-limit=0 burst-threshold=0 
     burst-time=0s bucket-size=0.1 

 4   name="5X2_In" parent=global packet-mark=M_5X2_In limit-at=0 queue=5X2_In priority=5 max-limit=0 burst-limit=0 burst-threshold=0 burst-time=0s 
     bucket-size=0.1 

 5   name="5X2_Out" parent=global packet-mark=M_5X2_Out limit-at=0 queue=5X2_Out priority=5 max-limit=0 burst-limit=0 burst-threshold=0 
     burst-time=0s bucket-size=0.1 

 6   name="DynaShape_In" parent=global packet-mark=M_DynaShape _In limit-at=0 queue=DynaShape_In priority=5 max-limit=0 burst-limit=0 
     burst-threshold=0 burst-time=0s bucket-size=0.1 

 7   name="DynaShape_Out" parent=global packet-mark=M_DynaShape_Out limit-at=0 queue=DynaShape_Out priority=5 max-limit=0 burst-limit=0 
     burst-threshold=0 burst-time=0s bucket-size=0.1 

 8   name="DynaShape30 _In" parent=global packet-mark=M_DynaShape30 _In limit-at=0 queue=DynaShape30_In priority=5 max-limit=0 burst-limit=0 
     burst-threshold=0 burst-time=0s bucket-size=0.1 

 9   name="DynaShape30_Out" parent=global packet-mark=M_DynaShape30_Out limit-at=0 queue=DynaShape30_Out priority=5 max-limit=0 burst-limit=0 
     burst-threshold=0 burst-time=0s bucket-size=0.1 
Аватара пользователя
Chupaka
Сообщения: 4095
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Queue Tree загрузка CPU

Сообщение Chupaka »

Ну, так-то они вроде писали в своё время, что 6000+ Simple Queues не должно быть проблемой в шестой версии :)

А по ядрам всё же как нагрузка распределяется?
/tool profile cpu=all и дальше по списку гулять PgUp/PgDn
Vlad83
Сообщения: 11
Зарегистрирован: 14 ноя 2016, 12:52

Re: Queue Tree загрузка CPU

Сообщение Vlad83 »

Chupaka писал(а):Ну, так-то они вроде писали в своё время, что 6000+ Simple Queues не должно быть проблемой в шестой версии :)

А по ядрам всё же как нагрузка распределяется?
/tool profile cpu=all и дальше по списку гулять PgUp/PgDn
6000+ хм... это интересно! Попробую перевести в Simple Queues.

По ядрам, в том то и дело что с виду нагрузка распределяется равномерно. Но всё равно как то странно , при 700Мбит-720Мбит трафика загрузка CPU не больше 50%, а как только переваливает за 800Мбит сразу CPU резко упирается в 100%. Вот я и вспомнил про вышеописанный баг с Queue Tree и CPU.
Vlad83
Сообщения: 11
Зарегистрирован: 14 ноя 2016, 12:52

Re: Queue Tree загрузка CPU

Сообщение Vlad83 »

Chupaka писал(а):Ну, так-то они вроде писали в своё время, что 6000+ Simple Queues не должно быть проблемой в шестой версии :)
Спасибо за наводку про 6000+! Перевёл на Simpl`ы , третий день выше CPU 20% не поднимается! Буду ждать когда пофиксят HTB.
Аватара пользователя
Chupaka
Сообщения: 4095
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Queue Tree загрузка CPU

Сообщение Chupaka »

Всегда пожалуйста :) А можно каплю подробностей в студию? Что именно было сделано?
Vlad83
Сообщения: 11
Зарегистрирован: 14 ноя 2016, 12:52

Re: Queue Tree загрузка CPU

Сообщение Vlad83 »

Chupaka писал(а):Всегда пожалуйста :) А можно каплю подробностей в студию? Что именно было сделано?
Переписал правила фаерволла в биллинге (UTM5) под Simple Queue, дисциплина PFIFO с размером в 50 пакетов,Target Upload и Target Download согласно тарифу,всё остальное по дефолту. Всего 5 тарифов, от 5 до 80 мбит/c.
Затем отключил маркировку в mangle, отключил Queue Tree.
Перезапустил rfw c флагом sync_flags=enable (Description: Startup synchronization options. Specified actions will be executed at startup), который синхронизировал новые правила с CCR-1036. И всё :)
Единственно сразу заметил что Simple Queue нарезает с погрешностью, точный процент озвучить не могу,закономерности пока не выявил.Т.е. торрент может прожимать на 1-2 мбит/c больше установленного Target Upload и Target Download. Не понял с чем связанно,но с Queue Tree такого не было. Пока копаю. Может сталкивались ?
Аватара пользователя
Chupaka
Сообщения: 4095
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Queue Tree загрузка CPU

Сообщение Chupaka »

Т.е. сейчас на роутере созданы очереди для всех имеющихся пользователей?

По скорости - возможно, как-то связано с типом и длиной очереди. В Simple Queue можно посмотреть текущий трафик - я бы с этого начал :)
Vlad83
Сообщения: 11
Зарегистрирован: 14 ноя 2016, 12:52

Re: Queue Tree загрузка CPU

Сообщение Vlad83 »

Chupaka писал(а):Т.е. сейчас на роутере созданы очереди для всех имеющихся пользователей?
Всё верно.
В Simple Queue можно посмотреть текущий трафик - я бы с этого начал :)
Не совсем понял, объясните пожалуйста.
Аватара пользователя
Chupaka
Сообщения: 4095
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Queue Tree загрузка CPU

Сообщение Chupaka »

Vlad83 писал(а): Не совсем понял, объясните пожалуйста.
Открыть нужную Simple Queue и перейти на вкладку Traffic. там тоже с превышением показывает?
mr.hak777
Сообщения: 6
Зарегистрирован: 22 ноя 2016, 07:59

Re: Queue Tree загрузка CPU

Сообщение mr.hak777 »

Vlad83 писал(а):
Chupaka писал(а):Всегда пожалуйста :) А можно каплю подробностей в студию? Что именно было сделано?
Переписал правила фаерволла в биллинге (UTM5) под Simple Queue, дисциплина PFIFO с размером в 50 пакетов,Target Upload и Target Download согласно тарифу,всё остальное по дефолту. Всего 5 тарифов, от 5 до 80 мбит/c.
Затем отключил маркировку в mangle, отключил Queue Tree.
Перезапустил rfw c флагом sync_flags=enable (Description: Startup synchronization options. Specified actions will be executed at startup), который синхронизировал новые правила с CCR-1036. И всё :)
Единственно сразу заметил что Simple Queue нарезает с погрешностью, точный процент озвучить не могу,закономерности пока не выявил.Т.е. торрент может прожимать на 1-2 мбит/c больше установленного Target Upload и Target Download. Не понял с чем связанно,но с Queue Tree такого не было. Пока копаю. Может сталкивались ?
Поделитесь опытом после перехода на Simple Queue, о приоритезации трафика пришлось забыть ?
Аватара пользователя
freewood
Сообщения: 45
Зарегистрирован: 03 мар 2016, 14:47
Откуда: Зеленоград

Re: Queue Tree загрузка CPU

Сообщение freewood »

mr.hak777, отчего же, simple queue точно так же поддерживает приоритезацию трафика.
tambu34
Сообщения: 1
Зарегистрирован: 15 апр 2017, 09:23

Re: Queue Tree загрузка CPU

Сообщение tambu34 »

поддерживаю топикстартера, на routeros 6 выкиньте на помойку queue tree + mangle и используйте simple. Нагрузка в 3.5 раза меньше. У меня была похожая ситуация, вводные данные похожи с теми, что в первом посте.
vasya_petrovich
Сообщения: 1
Зарегистрирован: 09 окт 2018, 03:53

Re: Queue Tree загрузка CPU

Сообщение vasya_petrovich »

Подниму старую тему.

Коллеги, а как обстоит дело с загрузкой процессора у симпл, если его строить в виде дерева?
timonsterrr
Сообщения: 70
Зарегистрирован: 05 мар 2017, 17:33

Re: Queue Tree загрузка CPU

Сообщение timonsterrr »

Сталкивался с такой же проблемой. Я решил ее по-другому...Разбил абонентов на группы в биллинге и на каждую группу работали свои куе три. Ну и следил, чтобы в одной очереди нагрузка была не более 700 мбит. Микрот в куе три не умеет распаралеливать нагрузку...каждая очередь закреплена за своим ядром.

Посмотрите где то на данном форуме уже поднимались такие темы и мною в том числе
prozaklob
Сообщения: 9
Зарегистрирован: 29 мар 2017, 23:15

Re: Queue Tree загрузка CPU

Сообщение prozaklob »

Прошли года и тема актуальна. 6.49
1072
нагрузки в районе 3гбит/с
как только переваливает за 3гб - проц 100%
в 7-й версии это вылечили?
Не охота на симплы спрыгивать назад, т.к там целая проблема потом управлять ими по api/ssh ( долго ищет )
Аватара пользователя
Chupaka
Сообщения: 4095
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Queue Tree загрузка CPU

Сообщение Chupaka »

prozaklob писал(а): 19 дек 2024, 23:15 там целая проблема потом управлять ими по api/ssh ( долго ищет )
Что именно по API долго ищет?
prozaklob
Сообщения: 9
Зарегистрирован: 29 мар 2017, 23:15

Re: Queue Tree загрузка CPU

Сообщение prozaklob »

Chupaka писал(а): 20 дек 2024, 08:32
prozaklob писал(а): 19 дек 2024, 23:15 там целая проблема потом управлять ими по api/ssh ( долго ищет )
Что именно по API долго ищет?
К примеру, у нас есть вот такой симпл:
add max-limit=50M/50M name=99999999 target=10.2.14.55/32 time=16h-1h,sun,mon,tue,wed,thu,fri,sa


Что бы его удалить - выполняем команду:
/queue simple remove [find name="216000004"] ( либо аналогично по IP адреса ).

При 2000~ симплах выполнение команды в районе 3 секунд. Это туматч.
Да, есть вариант по ID управлять и тогда сносить симплы он будет моментально, но это ж надо хранить базу с ID всего листа, это как-то нединамичненько.
Аватара пользователя
Chupaka
Сообщения: 4095
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Queue Tree загрузка CPU

Сообщение Chupaka »

А какая часть занимает 3 секунды? remove или find? Потому как подключиться по API, за 3 секунды загрузить весь список и потом удалять по id всё, что надо - вполне себе динамичненько и никаких баз не надо.
prozaklob
Сообщения: 9
Зарегистрирован: 29 мар 2017, 23:15

Re: Queue Tree загрузка CPU

Сообщение prozaklob »

и так и сяк абы что.
Биллинг выполняет операции последовательно по каждому юзеру.
Удалить симпл.
finde будет занимать столько же времени, сколько получение всего списка.