Нагрузка CPU

Upgrade: wb-mqtt-serial:armhf (2.7.1, 2.11.0~feature+less-logs+17+d3de92e)

а перед этим было 1.61.0, и при обновлении до 2.7.1 тоже была аналогичная “ступенька” загрузки процессора с 50% до 80% (см. сообщение выше)


при этом красный график - контроллер с wb-mqtt-serial 1.61.0 и с аналогичной загрузкой (таким же почти подключенным количеством оборудования), и если я его обновлю, будет точно такой же скачок нагрузки на процессор

Можете прислать настройки wb-mqtt-serial (/etc/wb-mqtt-serial.conf)?

wb-mqtt-serial.conf (17.5 КБ)

к данному контроллеру подключено:
через боковой интерфейс: 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 будет всегда одинаковая. Об этом уже писали выше.

Для снижения нагрузки можно сделать следующее:

  1. Решить, какие параметры MAP нужны и сделать шаблон, в котором будут только эти параметры.
  2. Существенно увеличить poll_interval для MAP. Вообще решить с какой частотой надо получать с MAP значения.
  3. Поставить тестовую версию wb-mqtt-serial 2.11.1
echo "deb http://releases.contactless.ru/experimental.7 stretch main" > /etc/apt/sources.list.d/experimental7.list
apt update
apt install wb-mqtt-serial=2.11.1~feature+performace-optimizations+3+95dda01
1 лайк

Лично от себя совет - откатиться на версию wb-mqtt-serial 1.61.0. Плюс кастомные шаблоны для счетчиков.
Аналогичная тема по нагрузке CPU после обновления, которую я создавал, окончилась ничем. Производитель считает это нормально.
В общем, пришлось исследовать вопрос и заниматься оптимизацией самостоятельно - в итоге, загрузка CPU в среднем около 50%, а LA в районе 1.0-1,3 - это при 12 устройствах на 4 шинах RS-485 плюс еще периодически ресурсоемкие скрипты на python работают.

есть ли MAP12, правили для них шаблон, скорость обмена в счетчике изменяли?

В вашем конфиге много устройств с редко изменяющимися показаниями. Тестовая версия wb-mqtt-serial, про которую я писал выше должна снизить нагрузку на cpu, т.к. мы улучшили работу с подобными устройствами.

root@wirenboard-AIZ2ODPK:~# apt search wb-mqtt-serial
Сортировка… Готово
Полнотекстовый поиск… Готово
wb-mqtt-serial/stretch,stretch,now 2.11.1~feature+performace-optimizations+3+95dda01 armhf [установлен]
  Wiren Board Smart Home MQTT serial protocol driver.

wb-mqtt-serial-dbgsym/stretch,stretch 1.41.1 armhf
  Debug symbols for wb-mqtt-serial

экспериментальную версию поставил, пока без изменений
шаблон пока не правил, чуть позже доберусь

Что значит “без изменений”?
Можно скришот top?

А как часто публикуются данные в MQTT? Вероятно, их достаточно много, в этом случае надо убрать лишнее из шаблонов и определить необходимый poll_interval, 2.11.1 тут действительно не поможет.