при этом красный график - контроллер с wb-mqtt-serial 1.61.0 и с аналогичной загрузкой (таким же почти подключенным количеством оборудования), и если я его обновлю, будет точно такой же скачок нагрузки на процессор
к данному контроллеру подключено:
через боковой интерфейс: WBIO-DI-WD-14 - 1 шт
по каналу RS-485-1:
MAP-12 - 3 шт
MAP-3 - 1 шт
по каналу RS-485-2:
MAP3-H - 1 шт
MS2 v2 - 1 шт
возникла необходимость заменить MAP3-H на MAP12
CPU контроллера в данный момент загружен под 100% практически постоянно
прошу смоделировать ситуацию (подключить к контроллеру такие же модули в таком же количестве)
и сказать что делать?
либо выставить какие-нибудь интервалы (или еще что-то предпринять) для разгрузки процессора
либо сказать, что такая ситуация нормальна - можно смело ставить еще один MAP-12
В вашем текущем конфиге время полного опроса всех регистров MAP больше, чем poll_interval. В результате wb-mqtt-serial непрерывно опрашивает счётчики. При таком режиме опроса число счётчиков на шине не имеет значения, нагрузка на cpu будет всегда одинаковая. Об этом уже писали выше.
Для снижения нагрузки можно сделать следующее:
Решить, какие параметры MAP нужны и сделать шаблон, в котором будут только эти параметры.
Существенно увеличить poll_interval для MAP. Вообще решить с какой частотой надо получать с MAP значения.
Лично от себя совет - откатиться на версию wb-mqtt-serial 1.61.0. Плюс кастомные шаблоны для счетчиков.
Аналогичная тема по нагрузке CPU после обновления, которую я создавал, окончилась ничем. Производитель считает это нормально.
В общем, пришлось исследовать вопрос и заниматься оптимизацией самостоятельно - в итоге, загрузка CPU в среднем около 50%, а LA в районе 1.0-1,3 - это при 12 устройствах на 4 шинах RS-485 плюс еще периодически ресурсоемкие скрипты на python работают.
В вашем конфиге много устройств с редко изменяющимися показаниями. Тестовая версия wb-mqtt-serial, про которую я писал выше должна снизить нагрузку на cpu, т.к. мы улучшили работу с подобными устройствами.
А как часто публикуются данные в MQTT? Вероятно, их достаточно много, в этом случае надо убрать лишнее из шаблонов и определить необходимый poll_interval, 2.11.1 тут действительно не поможет.