CHR Загрузка одного ядра в 100%

Обсуждение ПО и его настройки
rst161
Сообщения: 15
Зарегистрирован: 14 авг 2023, 14:15

Здравствуйте. Имеется CHR на esxi. На нём подняты десяток+ ovpnclient-ов. И ovpnserver Так же с десяток клиентов. Всё построено на chr и hap ac2.

Настроено примерно так везде

Изображение

Изображение

Изображение

Изображение

Изображение

Пробовал многое, всего да не вспомнить. Бесчисленное количество раз пере выпускал сертификаты. Разного уровня шифрования, key_size от 1024 до 4096.
Перепробовал все что можно в настройках (/interface ovpn-server server edit )

Через этот CHR Гоняется трафика порядка 100 мегабит. Абсолютно в рандомный момент может начинать загружаться одно ядро по ССЛ в 100%

Изображение

В принципе не критично. Зависаний не было. Но мне даёт это покоя уже больше полу года. И откровенно хочу знать, что я делаю не так. Из за чего такое поведение. Явно не здоровое поведение.



upd... Забыл добавить в логах иногда проскакивает ошибка по openvpn unsupported configuration parameter 'connect-retry'
В аккурат за секунду до того как поднимается загрузка ядра по ssl

Изображение


rst161
Сообщения: 15
Зарегистрирован: 14 авг 2023, 14:15

upd... Скринами могу ввести в заблуждения. Подумалось мне убрать опенвпнсервер на хапы. И сейчас chr цепляется к hap ac2 . Фактически сейчас CHR является клиентом. а хап АС Серверами. Коих 11 штук. Но при всём при этом. Один хрен не помогло. Начинают закрадываться мысли что дело совсем не в сертификатах и Openvpn. Что еще может вызывать логи с worning по ovpn и загрузкой ssl?


gmx
Модератор
Сообщения: 3345
Зарегистрирован: 01 окт 2012, 14:48

Очень похоже, что нагрузка ssl - это шифрация трафика. Не хотите другой туннель попробовать?


rst161
Сообщения: 15
Зарегистрирован: 14 авг 2023, 14:15

gmx писал(а): 11 июл 2024, 07:46 Очень похоже, что нагрузка ssl - это шифрация трафика. Не хотите другой туннель попробовать?
Можно и другой туннель. По опыту, тот же л2тп. Может нормальную скорость через себя пропускать. Что в принципе критично для rstp. (камер 60+)
Но в этом конфиге (или не в конфиге!? Подозревать начинаю железо) явно что-то не так. Раз такое происходит. Я не могу понять что именно. Правильней было бы решить проблему, а не бежать от неё. А то хрен его знает как это может потом аукнуться.


Erik_U
Сообщения: 1848
Зарегистрирован: 09 июл 2014, 12:33

Нашел такое объяснение:
https://forum.mikrotik.com/viewtopic.ph ... u#p1076803
Переупорядочивание пакетов TCP (если они действительно доставляются не по порядку) выполняется конечным получателем (поэтому обычно это не работа маршрутизатора). Непоследовательная доставка TCP может повлиять на пропускную способность (если TCP стекирует пакеты NACK, которые на самом деле приходят немного позже... что сокращает окно передачи отправителя). Но есть вещи, которые могут повлиять на пропускную способность TCP (и случаются с большей вероятностью), такие как длинный RTT или большой джиттер RTT (оба требуют большего окна Tx, но отправитель может не иметь возможности увеличить его до требуемого размера). Или перегрузка ЦП маршрутизатора , ROS будет обрабатывать пакеты, принадлежащие одному соединению, с помощью одного и того же ядра ЦП (на многоядерных устройствах это может существенно ограничить пропускную способность одного соединения) ... запустите tool-> cpu profiler и проверьте, не загружено ли одно из ядер ЦП

(со временем 100% нагрузка может переходить с одного ядра на другое) . Лучшим инструментом для изучения любых проблем является Wireshark, запустите его на тестовом ПК ... он покажет, доставляются ли пакеты не по порядку, отсутствуют ли какие-либо пакеты и т. д.


rst161
Сообщения: 15
Зарегистрирован: 14 авг 2023, 14:15

Erik_U писал(а): 12 июл 2024, 09:01 Нашел такое объяснение:
https://forum.mikrotik.com/viewtopic.ph ... u#p1076803
Переупорядочивание пакетов TCP (если они действительно доставляются не по порядку) выполняется конечным получателем (поэтому обычно это не работа маршрутизатора). Непоследовательная доставка TCP может повлиять на пропускную способность (если TCP стекирует пакеты NACK, которые на самом деле приходят немного позже... что сокращает окно передачи отправителя). Но есть вещи, которые могут повлиять на пропускную способность TCP (и случаются с большей вероятностью), такие как длинный RTT или большой джиттер RTT (оба требуют большего окна Tx, но отправитель может не иметь возможности увеличить его до требуемого размера). Или перегрузка ЦП маршрутизатора , ROS будет обрабатывать пакеты, принадлежащие одному соединению, с помощью одного и того же ядра ЦП (на многоядерных устройствах это может существенно ограничить пропускную способность одного соединения) ... запустите tool-> cpu profiler и проверьте, не загружено ли одно из ядер ЦП

(со временем 100% нагрузка может переходить с одного ядра на другое) . Лучшим инструментом для изучения любых проблем является Wireshark, запустите его на тестовом ПК ... он покажет, доставляются ли пакеты не по порядку, отсутствуют ли какие-либо пакеты и т. д.
Не много не понял, причем здесь я... У меня нет проблем с нехваткой мощностей. И вроде нет проблем с скоростью. В своё время замерял iperf- ом. Всё ровно, столько сколько может выдать клиент. И это в туннеле.

Со стороны chr у меня по тарифу 800. Получаю даже больше, только что проверил.
Изображение
Но у меня так же настроен qos. (на спид тест, я его отключал) Трассир на ружу (облако интернет и т.д система в целом) я режу 400 мегабитах зарегистрировано 100.
И настроены очереди. В начале белые адреса клиентов, так же 400 и 100, далее ovpn client 400 и 100,а потом уже сам трассир и камеры 400 и 100, И это прям с большим запасом т.к со стороны клиентов в среднем по 10-20 мегабит. И я целиком забиваю весь их канал, а не свой. Да и заметил бы, если на том же ether1 (провайдерский порт) потреблений было бы меньше чем обычно. bttest-ом внутри туннеля тоже проверял. всё гуд. Даже сейчас, у меня снова висит эта сотка загрузки ссл. Но при этом скорости всё те же. Выше приоритет трассира только rdp и веб других виртуальных машин. Но там трафика максимум на 20 мегабит. В самые загруженные дни. Я пробовал отключать qos, скажу больше, это проблема тянется еще до настройки первых очередей.

По мощностям, chr выдано хорошо с запасом. 6 ядер E5-2687W v4 3.00GHz, 16gb ram. Уже с десятком клиентов он должен справиться.
на esxi два таких камня стоят, сейчас он херачит суммарно чуть меньше половины мощности. при этом гостевая машина именно chr, из выделенного кушает 40%. Как раз этим ссл. Обычно 10% +- . Я думаю если погасить chr. то загрузка сервера в целом, будет меньше четверти.

Единственный момент который меня смущает, и если честно я чуть не вкуриваю.... Может быть такое что мту у меня всему виной?

Поясняю. Со стороны сервера у меня 1492 ( pppoe) ovpn с шифрование кушает 50 байт. выходит ovpn server у меня должен быть (!?Правильно понимаю?) 1442. со стороны клиентов я так же ставлю 1442. Но в некоторых местах ( там где у меня радио канал провайдерский) проходит чуть больше 1300. И вот там я со стороны клиентов выставляю уже значение 1300 на сервере всё так же 1442. Вот и выходит что у меня допустим 9 клиентов с мту 1442, а вот у двух 1300.
В противном случае, я уже пробовал везде выставлять 1300. Не помогало. Проблема оставалась.
(пы.сы с мту знаю, что нужно на сервере ставить 1492. и на клиентах таже. Где-то читал, что лучше уменьшать на ... )


Либо я что-то ну прям совсем тупое пропускаю по своей дурости, тупости (нужно подчеркнуть)). Либо где-то намудрил. Что в принципе подходит к первому варианту))... По этому я сбрасывался в дэфолт. И скрины сделаны на дэфолтной конфигурации. Даже те же профайлы ппп клиентов. Копировался с дефолта прописывая только самый минимум.

А теперь хотелось бы вернуться к вашему ответу. Я правильно понимаю, что вы предполагаете что из за очередей у меня может возникать загрузка ssl в 100%? Но тогда у меня должна была и падать скорость, чего в принципе не происходит...


Erik_U
Сообщения: 1848
Зарегистрирован: 09 июл 2014, 12:33

"конечным клиентом" ovpn у вас выступает микротик.
И в случае непоследовательной доставки TCP, ROS будет обрабатывать пакеты, принадлежащие одному соединению, с помощью одного и того же ядра ЦП, что и вызовет его 100% утилизацию.

Этот процесс у ROS на несколько ядер не параллелится.


rst161
Сообщения: 15
Зарегистрирован: 14 авг 2023, 14:15

Erik_U писал(а): 12 июл 2024, 19:53 "конечным клиентом" ovpn у вас выступает микротик.
И в случае непоследовательной доставки TCP, ROS будет обрабатывать пакеты, принадлежащие одному соединению, с помощью одного и того же ядра ЦП, что и вызовет его 100% утилизацию.

Этот процесс у ROS на несколько ядер не параллелится.


/ip/firewall/mangle> add chain=forward protocol=tcp action=mark-packet new-packet-mark=tcp-trassir passthrough=yes src-address=10.23.0.0/16
/queue simple add name="tcp-queue" target=10.23.0.0/16 max-limit=200M/200M
/queue tree add name="tcp-priority" parent=global priority=1 max-limit=800M
/queue tree add parent=tcp-priority queue=default packet-mark=tcp-trassir

Как-то так?
10.23.0.0/16 это вся сеть трассира.


Erik_U
Сообщения: 1848
Зарегистрирован: 09 июл 2014, 12:33

/ip/firewall/mangle> add chain=forward

почему форвард? Ограничиваете какой-то транзит, чтобы он не мешал работе ОВПН ?

Мне кажется, что проблема больше "косметическая".
Неравномерная загрузка ядер это же не полная загрузка всех ядер. После полной загрузки первого, новые процессы запускаются на следующем.
У вас же процессы не зависают.

Проблема точно нуждается в решении?


rst161
Сообщения: 15
Зарегистрирован: 14 авг 2023, 14:15

Erik_U писал(а): 14 июл 2024, 08:31 /ip/firewall/mangle> add chain=forward

почему форвард? Ограничиваете какой-то транзит, чтобы он не мешал работе ОВПН ?

Мне кажется, что проблема больше "косметическая".
Неравномерная загрузка ядер это же не полная загрузка всех ядер. После полной загрузки первого, новые процессы запускаются на следующем.
У вас же процессы не зависают.

Проблема точно нуждается в решении?
Думаете лучше еще оутпут и убрать с сорс адреса подсеть трассира? и весь тсп в приоритет наверх. Что было бы наверное логично.... Идея была ограничить весь трассир, как камеры, так и транзит. и впихнуть их в самый конец очереди.

Всё таки что-то явно не так. После добавления новых правил. Утро началось с того что перестали отвечать ДНС. Вижу свои родные 40% загрузки. Убедившись, что днс-ы на которые ссылается СНР работают. А на СНР они не отрабатывают. Полез в профайл. И какое же было моё удивление когда я увидел management в 100%, а не ссл. Так же одно ядро. Пытаюсь отключать по очереди ovpn-out до камер. Но на сей рас раз я их отключить не могу. В окне активных клиентов вообще пусто. ( пару сстп клиентов было. По ним трафика около нуля. бэкдоры) Попробовал через консоль ppp active print -не дождался ответа послал в ребут. Ребута ждал минуты две. Уже думал на хост лезть глушить это счастье. Но всё же сам себя перезагрузил.

С какой-то стороны я рад такому результату, что-то новое... Такого прям совсем никогда не было. А с другой стороны выстрелил себе в ногу и радуюсь))


Ответить