Высокая нагрузка на процессор

Имеется контроллер WB 6.8.1, обновления стоят wb-2401 stable, все прошивки модулей и датчиков обновлены до последней версии.
Имею более 50 модулей и датчиков на 4 линиях (2 через модуль расширения)
LoadAverage никогда не опускается ниже 3


Для некритичных каналов устройств я максимально увеличил период опроса, неиспользуемые канал выключил (конфиг прикладываю).
wb-mqtt-serial.conf (91,8 КБ)
В логах время от времени имеются строчки:

19-01-2024 02:57:23.401 [wb-mqtt-serial]	WARNING: [modbus] failed to read 2 input(s) @ 9 of device modbus:118: Serial protocol error: request timed out
19-01-2024 02:57:04.289 [wb-mqtt-serial]	WARNING: [modbus] failed to read 2 coil(s) @ 5001 of device modbus:149: Serial protocol error: malformed response: invalid crc
19-01-2024 02:52:07.404 [wb-mqtt-serial]	WARNING: [modbus] failed to read 1 holding(s) @ 140 of device modbus:82: Serial protocol error: request timed out
19-01-2024 02:47:58.530 [wb-mqtt-serial]	WARNING: [modbus] failed to read 2 input(s) @ 9 of device modbus:140: Serial protocol error: request timed out
19-01-2024 02:47:06.756 [wb-mqtt-serial]	WARNING: [modbus] failed to read 12 coil(s) @ 0 of device modbus:128: Serial protocol error: malformed response: invalid crc
19-01-2024 02:46:58.182 [wb-mqtt-serial]	WARNING: [modbus] failed to read 1 holding(s) @ 140 of device modbus:82: Serial protocol error: request timed out
19-01-2024 02:45:41.283 [wb-mqtt-db.service]	WARNING: [dblogger] Group data limit is reached: group all, row count 102001, limit 100000
19-01-2024 02:34:31.135 [wb-mqtt-serial]	WARNING: [modbus] failed to read 12 coil(s) @ 0 of device modbus:154: Serial protocol error: malformed response: invalid crc
19-01-2024 02:34:24.199 [wb-mqtt-serial]	WARNING: [modbus] failed to read 1 holding(s) @ 91 of device modbus:82: Serial protocol error: request timed out
19-01-2024 02:33:39.147 [wb-mqtt-serial]	WARNING: [modbus] failed to read 2 input(s) @ 9 of device modbus:118: Serial protocol error: request timed out
19-01-2024 02:33:39.147 [wb-mqtt-serial]	WARNING: [modbus] failed to read 2 input(s) @ 9 of device modbus:118: Serial protocol error: request timed out
19-01-2024 02:32:40.237 [wb-mqtt-serial]	WARNING: [modbus] failed to read 2 input(s) @ 9 of device modbus:132: Serial protocol error: request timed out
19-01-2024 02:30:08.615 [wb-mqtt-serial]	WARNING: [modbus] failed to read 2 input(s) @ 9 of device modbus:127: Serial protocol error: malformed response: invalid crc

Стороннего ПО не стоит. Прошу консультацию по минимизации нагрузки на CPU.

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

  1. Проблема возникла до обновления на wb-2401?
  2. Какие последствия подобной загрузки контроллера? Сказывается ли это ощутимо на отклик системы в целом: задержки по входам-выходам модулей, неотзывчивость системы в целом?
  3. Есть ли написанные скрипты в правилах?

Данное действие привело ли к какому-то результату?

Чтобы я сделал для определения (или хотя бы локализации) проблемы - проверил бы влияние на нагрузку:

  1. отключения пользовательских правил;
  2. отключения из опроса шин RS-485 поочередно (и всех);

В логах видны ошибки: invalid crc. Возможная причина - шина RS-485. Пришлите фото монтажа и подключения модулей. Выполнены ли рекомендации по прокладке шины?

Добрый день! Диагностический архив собрался со следующими проблемами, но прикладываю что собралось

приложен диагностический архив, доступен только сотрудникам поддержки
(291,6 КБ)
:

root@wirenboard-A5FDJ4RW:~/temp# wb-diag-collect diag
Start data collecting
2024-01-19 09:48:14,828 [WARNING] No files for wildcard /var/log/z-way-server.log
2024-01-19 09:48:15,427 [WARNING] No files for wildcard /mnt/data/.wb-restore/wb-console.log
2024-01-19 09:48:24,755 [WARNING] Command systemctl list-unit-files --all --output=json didn’t finish in 5s
2024-01-19 09:48:36,616 [WARNING] Command emmcparm -I /dev/mmcblk0 didn’t finish in 5s
2024-01-19 09:48:42,381 [WARNING] Command wb-gen-serial -s didn’t finish in 5s
2024-01-19 09:48:47,507 [WARNING] Command mqtt-get-dump “$SYS/#” didn’t finish in 5s
Data was collected successfully

  1. Да, проблема присутствовала и до wb-2401.
  2. Да, в пики высокой нагрузки, по каким-то причинам, ощущаются задержки/несрабатывание условий/зависание таймеров в правилах
  3. Есть правила, не сказал бы что их много прям, но задействуются все доступные устройства. Также использую аддон от стороннего разработчика wb-engine, чтобы переместить часть автоматизации на Home Assistant (на стороннем устройстве), чтобы более не нагружать контроллер.

Если и привело, то незначительно. Также я уменьшил максимальное количество чтений регистров в секунду со 100 до 80, немного и это вроде как помогло.

я пробовал отключать массово (линиями), нагрузка снижалась пропорционально количеству отключаемых устройств и правил. Буду пробовать локализовывать, но на это потребуется значительное количество времени, отвечу попозже.
Сборкой щита занималась фирма, прикладываю фото от них




А что за процесс curl, занимаюющий 16% CPU на скриншоте?

wb-cloud, облачное управление (https://wirenboard.cloud). Но это редко он так потребляет, обычно значительно меньше

Всё-таки я не прав, wb-cloud хорошо так ресурсы потребляет, скину статистику скоро

Для шестого контроллера все ж много. Я б подумал о замене на семерку.

Я уже тоже так думаю… Тогда уж сразу лучше на 8ку. Какое сейчас примерное время ожидание при предзаказе?

Ориентировочно - февраль, даже ближе к концу февраля.
В любом случае заполните форму на сайте, это позволит сформировать “очередь”.

1 лайк

К слову, вот нагрузка упала без wb-cloud, уже приемлемо, но заменять всё равно буду контроллер на новый

1 лайк