Queue Tree загрузка CPU

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

Queue Tree загрузка CPU

Сообщение Vlad83 » 14 ноя 2016, 13:55

Здравствуйте!
Столкнулся со следующей проблемой на 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
Сообщения: 1356
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Контактная информация:

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

Сообщение Chupaka » 14 ноя 2016, 23:43

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

А по ядрам всё же как нагрузка распределяется?
/tool profile cpu=all и дальше по списку гулять PgUp/PgDn

Vlad83
Сообщения: 11
Зарегистрирован: 14 ноя 2016, 12:52

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

Сообщение Vlad83 » 15 ноя 2016, 10:32

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 » 18 ноя 2016, 18:33

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

Аватара пользователя
Chupaka
Сообщения: 1356
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Контактная информация:

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

Сообщение Chupaka » 19 ноя 2016, 05:13

Всегда пожалуйста :) А можно каплю подробностей в студию? Что именно было сделано?

Vlad83
Сообщения: 11
Зарегистрирован: 14 ноя 2016, 12:52

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

Сообщение Vlad83 » 21 ноя 2016, 10:55

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
Сообщения: 1356
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Контактная информация:

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

Сообщение Chupaka » 21 ноя 2016, 15:55

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

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

Vlad83
Сообщения: 11
Зарегистрирован: 14 ноя 2016, 12:52

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

Сообщение Vlad83 » 21 ноя 2016, 18:14

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

Аватара пользователя
Chupaka
Сообщения: 1356
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Контактная информация:

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

Сообщение Chupaka » 22 ноя 2016, 00:04

Vlad83 писал(а): Не совсем понял, объясните пожалуйста.
Открыть нужную Simple Queue и перейти на вкладку Traffic. там тоже с превышением показывает?

mr.hak777
Сообщения: 2
Зарегистрирован: 22 ноя 2016, 07:59

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

Сообщение mr.hak777 » 22 ноя 2016, 08:06

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, о приоритезации трафика пришлось забыть ?

Ответить