Всем привет. Такая ситуация - используем для шейпинга трафика микрот сср72 ядерный. Прошивка 6.38.3 Шейпится примерно 6000 абонентов.
mangle+que tree pcq В час пик микрот уходит в аут нагрузка более 100% Пробовал использовать симпл очереди. Не дает результата.
CCR72 + queues tree CPU over 100%
-
- Сообщения: 70
- Зарегистрирован: 05 мар 2017, 17:33
CCR72 + queues tree CPU over 100%
Последний раз редактировалось timonsterrr 06 мар 2017, 13:08, всего редактировалось 1 раз.
-
- Сообщения: 4090
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: ССК72 + queues tree CPU over 100%
Хм... По отзывам - именно переход на Simple Queues по одной на абонента чудодейственно влиял на работоспособность. Или Simple тоже были PCQ?
-
- Сообщения: 70
- Зарегистрирован: 05 мар 2017, 17:33
Re: ССК72 + queues tree CPU over 100%
Я это попробовал. Сделал для каждого абонента Simple Queues pfifo (тоже читал ту статью, где человеку это чудодейственно помогло). Получилось 12 000 очередей (по 2 на каждого абонента, да, торренты подрезаем чуток) и микрот ушел просто в аут....
В итоге я решил свою проблему так:
у меня есть самый популярный тариф и на нем больше всего нагрузки...к моменту когда на микроте становится 100% проца занято на тарифе как раз 700-750 мбит трафика. Я разделил абонентов этого тарифа на 2 группы, создал еще один адресслист и для него отдельную очередь и метку пакетов в мангле. В итоге на каждой из групп нагрузка стала 450-550 мбит. И это помогло! Процессор опустился до 40-55% в час пик. Абоны счастливы, пинги низкие ну и все вытекающие.
Сегодня решил поделить абонов еще по 500 чел в 1 группе тарифа. Итого - нагрузка на процессор от queues почти исчезла 4-7% Но на файрволе (мангл) выросла процентов на 5 т.к. появились новые правила маркировки пакетов для новых групп.
Итого вывод - как только генерируемый трафик в queues правиле подбирается к 700 мбитам - микроту плохеет. Интересно знают ли об этой проблеме разработчики. В марте еду на MUM попробую там выяснить с чем это связано)
-
- Сообщения: 4090
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: CCR72 + queues tree CPU over 100%
Хм... Ну тогда мелкотиковцам привет на MUM'е. Я с такой проблемой столкнулся ещё на версии в районе 6.5. Перенёс конфиг с х86 на CCR - а он много трафика не тянет. Нашёл, что если через PCC разделить потоки на две PCQ-очереди, то пациенту становится легче. Надеялся, что с тех пор уже много наоптимизировали...
Проблема, видимо, в большом количестве ядер: архитектура TILE раскидывает пакеты по процессорам согласно соединениям. А потом их со всех процов надо собрать, чтобы поместить в одну очередь - вот и получается пробка... Правда, непонятно, почему Simple Queues не взлетели
Проблема, видимо, в большом количестве ядер: архитектура TILE раскидывает пакеты по процессорам согласно соединениям. А потом их со всех процов надо собрать, чтобы поместить в одну очередь - вот и получается пробка... Правда, непонятно, почему Simple Queues не взлетели
-
- Сообщения: 70
- Зарегистрирован: 05 мар 2017, 17:33
Re: CCR72 + queues tree CPU over 100%
Может быть потому что их 12 000 получилось...я тоже не понимаю что помешало) Оздавал очереди по выгружаемым в микрот из биллинга спискам IP адресов. Вот скриптChupaka писал(а): ↑06 мар 2017, 15:02 Хм... Ну тогда мелкотиковцам привет на MUM'е. Я с такой проблемой столкнулся ещё на версии в районе 6.5. Перенёс конфиг с х86 на CCR - а он много трафика не тянет. Нашёл, что если через PCC разделить потоки на две PCQ-очереди, то пациенту становится легче. Надеялся, что с тех пор уже много наоптимизировали...
Проблема, видимо, в большом количестве ядер: архитектура TILE раскидывает пакеты по процессорам согласно соединениям. А потом их со всех процов надо собрать, чтобы поместить в одну очередь - вот и получается пробка... Правда, непонятно, почему Simple Queues не взлетели
Код: Выделить всё
/ip firewall address-list
:foreach ip in=[find where list~"000k"] do {
:local ipaddress [get $ip address]
:local listname [get $ip list]
:local megabits [:pick $listname 0 [:find $listname "000k"]]
:local limit ($megabits."M/".$megabits."M")
:local limitother ""
:if ($megabits < 15) do {:set limitother "2M/2M"} #тут режем торрент мелким тарифам
:if ($megabits >= 15 && $megabits <= 60) do { :set limitother "3M/3M" } #тут режем торрент крупным тарифам
:if ($megabits > 60) do { :set limitother $limit }
/queue simple add name=($ipaddress."_http") target=$ipaddress max-limit=$limit packet-marks=("http-packet-".$megabits."m") queue=default/default #создаем правило для серфинга
/queue simple add name=($ipaddress."_other") target=$ipaddress max-limit=$limitother packet-marks=("other-packet-".$megabits."m") queue=default/default #создаем правило для орграничения торрента
}
Уже на 8-9 тысячах созданных правил микрот очень серьезно ложился. вплоть до потери управляемости.
-
- Сообщения: 4090
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: CCR72 + queues tree CPU over 100%
Т.е. даже без трафика, просто при наличии правил?