Wb-mqtt-serial утечка памяти

на версии 2.248.1-wb101 через 1-2 дня начинает увеличиваться память и в конечном итоге когда занимает 700мб - вешается москито и перестает работать контроллер. Это повторяется уже несколько раз, причину утечки не вижу - все модули и тд которые работают уже много лет, и кто как с обновлением - никак не могу связать.

Добрый день.
Похоже на накопление сообщений в хранилище брокера (mosquitto). Чтобы найти причину, нужно увидеть динамику — поэтому просьба собрать несколько вещей.

Для начала рекомендую обновить контроллер до последнего стабильного релиза, если это ещё не сделано, — в новых версиях исправлено много ошибок, возможно, проблема уйдёт. Если после обновления она сохранится, для диагностики пришлите, пожалуйста, следующее.

  1. Диагностический архив.** Снимите его желательно в момент, когда память уже выросла, но контроллер ещё работает. Как создать архив, описано в документации.

  2. Почасовые срезы памяти.** Чтобы увидеть общую динамику занятости памяти, заведите почасовой снимок. Выполните по SSH одной командой — она создаёт задачу в cron и переживает перезагрузку:

tee /etc/cron.d/mem-snapshot >/dev/null <<'EOF'0 * * * * root { date '+\%F \%T'; free -m; ps -eo rss,comm --sort=-rss | head -6; echo; } >> /mnt/data/mem-snapshot.log 2>&1EOF

Через 1–2 суток приложите к теме файл /mnt/data/mem-snapshot.log — по нему будет видно, какой процесс растёт.

  1. Снимок состояния брокера.** Когда память уже подросла, выполните по очереди две команды и пришлите вывод.
mosquitto_sub -v -t '$SYS/broker/store/messages/count' -t '$SYS/broker/clients/total' -t '$SYS/broker/heap/current' -C 3
journalctl -u mosquitto --no-pager | grep -iE 'saving|denied|out of memory|unable to open|no space'

По собранным данным мы увидим, что именно растёт, и подскажем, что делать дальше

Также уточните, пожалуйста: развёрнуто ли на контроллере стороннее ПО? Если да — какое именно.

Добрый день,
Удалось ли решить вопрос?

Проблема осталась, когда появлялась - не было доступа к контроллеру, поэтому приходилось просто перезагружать его. На данный момент он подвис, причина москито out of memory. Диагностический архив создать не могу, тк в вебе эта настройка повисает (крутится бесконечно). Через терминал сделаю сейчас команды дам вывод.

root@wirenboard-AY2DVMO5:~# htop
root@wirenboard-AY2DVMO5:~# uptime
free -h
ps aux | grep wb-mqtt-serial | grep -v grep
 10:01:53 up 1 day, 16:13,  1 user,  load average: 1.75, 1.45, 1.32
               total        used        free      shared  buff/cache   available
Mem:           2.0Gi       986Mi       149Mi       9.0Mi       876Mi       951Mi
Swap:          255Mi          0B       255Mi
root      2087 35.0  8.2 332596 169460 ?       Ssl  Jul02 844:53 /usr/bin/wb-mqtt-serial

wb-mqtt-serial.service - MQTT Driver for serial devices
     Loaded: loaded (/lib/systemd/system/wb-mqtt-serial.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2026-07-02 17:48:50 UTC; 1 day 16h ago
    Process: 2031 ExecStartPre=/usr/lib/wb-mqtt-serial/generate-system-config.sh (code=exited, status=0/SUCCESS)
   Main PID: 2087 (wb-mqtt-serial)
      Tasks: 18 (limit: 4790)
     Memory: 174.8M
        CPU: 14h 4min 56.476s
     CGroup: /system.slice/wb-mqtt-serial.service
             └─2087 /usr/bin/wb-mqtt-serial

Jul 04 10:01:52 wirenboard-AY2DVMO5 wb-mqtt-serial[2087]: WARNING: [mqtt] connection lost
Jul 04 10:01:53 wirenboard-AY2DVMO5 wb-mqtt-serial[2087]: WARNING: [mqtt] connection lost
Jul 04 10:01:54 wirenboard-AY2DVMO5 wb-mqtt-serial[2087]: WARNING: [mqtt] connection lost
Jul 04 10:01:55 wirenboard-AY2DVMO5 wb-mqtt-serial[2087]: WARNING: [mqtt] connection lost
Jul 04 10:01:56 wirenboard-AY2DVMO5 wb-mqtt-serial[2087]: WARNING: [mqtt] connection lost
Jul 04 10:01:58 wirenboard-AY2DVMO5 wb-mqtt-serial[2087]: WARNING: [mqtt] connection lost
Jul 04 10:01:59 wirenboard-AY2DVMO5 wb-mqtt-serial[2087]: WARNING: [mqtt] connection lost
Jul 04 10:02:00 wirenboard-AY2DVMO5 wb-mqtt-serial[2087]: WARNING: [mqtt] connection lost
Jul 04 10:02:01 wirenboard-AY2DVMO5 wb-mqtt-serial[2087]: WARNING: [mqtt] connection lost
Jul 04 10:02:02 wirenboard-AY2DVMO5 wb-mqtt-serial[2087]: WARNING: [mqtt] connection lost

wb-rules.service - MQTT Rule engine for Wiren Board
     Loaded: loaded (/lib/systemd/system/wb-rules.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2026-07-03 12:10:12 UTC; 21h ago
   Main PID: 17017 (wb-rules)
      Tasks: 21 (limit: 4790)
     Memory: 23.4M (high: 603.8M max: 1006.4M)
        CPU: 6h 49min 51.785s
     CGroup: /system.slice/wb-rules.service
             └─17017 /usr/bin/wb-rules -http 127.0.0.1:9090 -syslog -editdir /etc/wb-rules/ /usr/share/wb-rules-system/rules/ /etc/wb-rules/ /usr/share/wb-rules/

Jul 04 10:00:25 wirenboard-AY2DVMO5 wb-rules[17017]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x1135840 <nil>} 27174})
Jul 04 10:00:35 wirenboard-AY2DVMO5 wb-rules[17017]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x166b140 <nil>} 27175})
Jul 04 10:00:45 wirenboard-AY2DVMO5 wb-rules[17017]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x166b200 <nil>} 27176})
Jul 04 10:00:55 wirenboard-AY2DVMO5 wb-rules[17017]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x15b6240 <nil>} 27177})
Jul 04 10:01:05 wirenboard-AY2DVMO5 wb-rules[17017]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x168e1c0 <nil>} 27178})
Jul 04 10:01:15 wirenboard-AY2DVMO5 wb-rules[17017]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x11342c0 <nil>} 27179})
Jul 04 10:01:25 wirenboard-AY2DVMO5 wb-rules[17017]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x11358c0 <nil>} 27180})
Jul 04 10:01:35 wirenboard-AY2DVMO5 wb-rules[17017]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x15b7080 <nil>} 27181})
Jul 04 10:01:45 wirenboard-AY2DVMO5 wb-rules[17017]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x109e400 <nil>} 27182})
Jul 04 10:01:55 wirenboard-AY2DVMO5 wb-rules[17017]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x109e640 <nil>} 27183})

wb-homeui-backend.service - Backend service for Wiren Board web interface
     Loaded: loaded (/lib/systemd/system/wb-homeui-backend.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2026-07-02 17:48:50 UTC; 1 day 16h ago
    Process: 2007 ExecStartPre=/usr/lib/wb-homeui-backend/generate-system-config.sh (code=exited, status=0/SUCCESS)
   Main PID: 2079 (wb-homeui-backe)
      Tasks: 3 (limit: 4790)
     Memory: 13.9M
        CPU: 1min 35.688s
     CGroup: /system.slice/wb-homeui-backend.service
             └─2079 /usr/bin/python3 /usr/bin/wb-homeui-backend

Jul 02 17:48:50 wirenboard-AY2DVMO5 systemd[1]: Starting Backend service for Wiren Board web interface...
Jul 02 17:48:50 wirenboard-AY2DVMO5 systemd[1]: Started Backend service for Wiren Board web interface.
root@wirenboard-AY2DVMO5:~# mosquitto_sub -t '$SYS/broker/messages/stored' -W 2
journalctl -u mosquitto --since "1 hour ago" --no-pager | grep -iE "out of memory|error" | tail -n 10
Jul 04 09:55:00 wirenboard-AY2DVMO5 mosquitto[16920]: 1783158900: Client wb-gpio disconnected due to out of memory.
root@wirenboard-AY2DVMO5:~# journalctl -u wb-mqtt-serial --since "1 hour ago" --no-pager | grep -c "failed to read"
13
root@wirenboard-AY2DVMO5:~# journalctl -u wb-rules --since "1 hour ago" --no-pager | grep -E "ERROR|WARNING" | tail -n 15
Jul 04 10:00:15 wirenboard-AY2DVMO5 wb-rules[17017]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x168e2c0 <nil>} 27173})
Jul 04 10:00:25 wirenboard-AY2DVMO5 wb-rules[17017]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x1135840 <nil>} 27174})
Jul 04 10:00:35 wirenboard-AY2DVMO5 wb-rules[17017]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x166b140 <nil>} 27175})
Jul 04 10:00:45 wirenboard-AY2DVMO5 wb-rules[17017]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x166b200 <nil>} 27176})
Jul 04 10:00:55 wirenboard-AY2DVMO5 wb-rules[17017]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x15b6240 <nil>} 27177})
Jul 04 10:01:05 wirenboard-AY2DVMO5 wb-rules[17017]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x168e1c0 <nil>} 27178})
Jul 04 10:01:15 wirenboard-AY2DVMO5 wb-rules[17017]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x11342c0 <nil>} 27179})
Jul 04 10:01:25 wirenboard-AY2DVMO5 wb-rules[17017]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x11358c0 <nil>} 27180})
Jul 04 10:01:35 wirenboard-AY2DVMO5 wb-rules[17017]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x15b7080 <nil>} 27181})
Jul 04 10:01:45 wirenboard-AY2DVMO5 wb-rules[17017]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x109e400 <nil>} 27182})
Jul 04 10:01:55 wirenboard-AY2DVMO5 wb-rules[17017]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x109e640 <nil>} 27183})
Jul 04 10:02:05 wirenboard-AY2DVMO5 wb-rules[17017]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x15b7600 <nil>} 27184})
Jul 04 10:02:15 wirenboard-AY2DVMO5 wb-rules[17017]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x109e980 <nil>} 27185})
Jul 04 10:02:25 wirenboard-AY2DVMO5 wb-rules[17017]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x168ffc0 <nil>} 27186})
Jul 04 10:02:35 wirenboard-AY2DVMO5 wb-rules[17017]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x109ec40 <nil>} 27187})


root@wirenboard-AY2DVMO5:~# journalctl -p err --since "1 hour ago" --no-pager | grep -vE "kernel|bluetooth|wpa" | tail -n 15
Jul 04 10:00:35 wirenboard-AY2DVMO5 wb-rules[17017]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x166b140 <nil>} 27175})
Jul 04 10:00:45 wirenboard-AY2DVMO5 wb-rules[17017]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x166b200 <nil>} 27176})
Jul 04 10:00:55 wirenboard-AY2DVMO5 wb-rules[17017]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x15b6240 <nil>} 27177})
Jul 04 10:01:05 wirenboard-AY2DVMO5 wb-rules[17017]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x168e1c0 <nil>} 27178})
Jul 04 10:01:15 wirenboard-AY2DVMO5 wb-rules[17017]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x11342c0 <nil>} 27179})
Jul 04 10:01:15 wirenboard-AY2DVMO5 /usr/bin/wb-metrics[2414]: Unexpected disconnection.
Jul 04 10:01:25 wirenboard-AY2DVMO5 wb-rules[17017]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x11358c0 <nil>} 27180})
Jul 04 10:01:35 wirenboard-AY2DVMO5 wb-rules[17017]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x15b7080 <nil>} 27181})
Jul 04 10:01:45 wirenboard-AY2DVMO5 wb-rules[17017]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x109e400 <nil>} 27182})
Jul 04 10:01:55 wirenboard-AY2DVMO5 wb-rules[17017]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x109e640 <nil>} 27183})
Jul 04 10:02:05 wirenboard-AY2DVMO5 wb-rules[17017]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x15b7600 <nil>} 27184})
Jul 04 10:02:15 wirenboard-AY2DVMO5 wb-rules[17017]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x109e980 <nil>} 27185})
Jul 04 10:02:25 wirenboard-AY2DVMO5 wb-rules[17017]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x168ffc0 <nil>} 27186})
Jul 04 10:02:35 wirenboard-AY2DVMO5 wb-rules[17017]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x109ec40 <nil>} 27187})
Jul 04 10:02:45 wirenboard-AY2DVMO5 wb-rules[17017]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x15b7f80 <nil>} 27188})



Команды что в первом после, строка out of memory там бесконечная, те она постоянно видимо проблема проявляется

root@wirenboard-AY2DVMO5:~# tee /etc/cron.d/mem-snapshot >/dev/null <<'EOF'0 * * * * root { date '+\%F \%T'; free -m; ps -eo rss,comm --sort=-rss | head -6; echo; } >> /mnt/data/mem-snapshot.log 2>&1EOF
> ^C
root@wirenboard-AY2DVMO5:~# mosquitto_sub -v -t '$SYS/broker/store/messages/count' -t '$SYS/broker/clients/total' -t '$SYS/broker/heap/current' -C 3
^Croot@wirenboard-AY2DVMO5:~journalctl -u mosquitto --no-pager | grep -iE 'saving|denied|out of memory|unable to open|no space'e'
Jun 17 23:55:31 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740531: Client wb-modbus disconnected due to out of memory.
Jun 17 23:55:31 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740531: Client wb-mqtt-smartweb disconnected due to out of memory.
Jun 17 23:55:32 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740531: Client {3202cc71-3b32-4737-b4a6-753759ab27d0} disconnected due to out of memory.
Jun 17 23:55:33 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740533: Client ESP32_42E6C8 disconnected due to out of memory.
Jun 17 23:55:34 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740534: Client wb-mqtt-smartweb disconnected due to out of memory.
Jun 17 23:55:34 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740534: Client wb-modbus disconnected due to out of memory.
Jun 17 23:55:34 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740534: Client ESP32_42DDB4 disconnected due to out of memory.
Jun 17 23:55:34 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740534: Error: Out of memory.
Jun 17 23:55:37 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740537: Client wb-mqtt-smartweb disconnected due to out of memory.
Jun 17 23:55:37 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740537: Client wb-modbus disconnected due to out of memory.
Jun 17 23:55:38 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740538: Client ESP32_42C2B8 disconnected due to out of memory.
Jun 17 23:55:39 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740539: Client wb-mqtt-smartweb disconnected due to out of memory.
Jun 17 23:55:39 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740539: Client wb-modbus disconnected due to out of memory.
Jun 17 23:55:39 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740539: Client wb-w1 disconnected due to out of memory.
Jun 17 23:55:40 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740540: Client wb-mqtt-metrics-hq5EtiyY disconnected due to out of memory.
Jun 17 23:55:40 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740540: Client ESP32_42E48C disconnected due to out of memory.
Jun 17 23:55:41 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740541: Client wb-mqtt-smartweb disconnected due to out of memory.
Jun 17 23:55:41 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740541: Client rules-wirenboard-AY2DVMO5-14019 disconnected due to out of memory.
Jun 17 23:55:43 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740543: Client rules-wirenboard-AY2DVMO5-14019 disconnected due to out of memory.
Jun 17 23:55:43 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740543: Client wb-modbus disconnected due to out of memory.
Jun 17 23:55:43 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740543: Client wb-mqtt-smartweb disconnected due to out of memory.
Jun 17 23:55:44 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740544: Error: Out of memory.
Jun 17 23:55:44 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740544: Client {3202cc71-3b32-4737-b4a6-753759ab27d0} disconnected due to out of memory.
Jun 17 23:55:45 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740545: Client wb-adc disconnected due to out of memory.
Jun 17 23:55:50 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740550: Client wb-mqtt-smartweb disconnected due to out of memory.
Jun 17 23:55:51 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740551: Error: Out of memory.
Jun 17 23:55:51 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740551: Error: Out of memory.
Jun 17 23:55:51 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740551: Error: Out of memory.
Jun 17 23:55:51 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740551: Client wb-w1 disconnected due to out of memory.
Jun 17 23:55:52 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740552: Client wb-cloud-agent@wirenboard.cloud-jQKtUpe5 disconnected due to out of memory.
Jun 17 23:55:52 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740552: Client wb-w1 disconnected due to out of memory.
Jun 17 23:56:05 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740565: Client netty-mqtt/S7jPd1fg disconnected due to out of memory.
Jun 17 23:56:05 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740565: Client wb-modbus disconnected due to out of memory.
Jun 17 23:56:05 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740565: Client wb-mqtt-smartweb disconnected due to out of memory.
Jun 17 23:56:13 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740573: Error: Out of memory.
Jun 17 23:56:13 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740573: Error: Out of memory.
Jun 17 23:56:13 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740573: Error: Out of memory.
Jun 17 23:56:24 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740584: Error: Out of memory.
Jun 17 23:56:35 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740595: Error: Out of memory.
Jun 17 23:56:46 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740606: Error: Out of memory.
Jun 17 23:56:57 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740617: Error: Out of memory.
Jun 17 23:57:08 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740627: Error: Out of memory.
Jun 17 23:57:19 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740639: Error: Out of memory.
Jun 17 23:57:30 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740650: Error: Out of memory.
Jun 17 23:57:41 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740661: Error: Out of memory.
Jun 17 23:57:52 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740671: Error: Out of memory.
Jun 17 23:58:03 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740683: Error: Out of memory.
Jun 17 23:58:14 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740694: Error: Out of memory.
Jun 17 23:58:25 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740705: Error: Out of memory.
Jun 17 23:58:36 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740716: Error: Out of memory.
Jun 17 23:58:47 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740727: Error: Out of memory.
Jun 17 23:58:58 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740738: Error: Out of memory.
Jun 17 23:59:09 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740749: Error: Out of memory.
Jun 17 23:59:20 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740760: Error: Out of memory.
Jun 17 23:59:31 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740771: Error: Out of memory.
Jun 17 23:59:42 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740782: Error: Out of memory.
Jun 17 23:59:53 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740793: Error: Out of memory.
Jun 18 00:00:04 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740804: Error: Out of memory.
Jun 18 00:00:15 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740815: Error: Out of memory.
Jun 18 00:00:26 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740826: Error: Out of memory.
Jun 18 00:00:37 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740837: Error: Out of memory.
Jun 18 00:00:48 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740848: Error: Out of memory.
Jun 18 00:00:59 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740859: Error: Out of memory.
Jun 18 00:01:10 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740870: Error: Out of memory.
Jun 18 00:01:21 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740881: Error: Out of memory.
Jun 18 00:01:32 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740891: Error: Out of memory.
Jun 18 00:01:43 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740903: Error: Out of memory.
Jun 18 00:01:54 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740914: Error: Out of memory.
Jun 18 00:02:05 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740924: Error: Out of memory.
Jun 18 00:02:16 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740936: Error: Out of memory.
Jun 18 00:02:27 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740947: Error: Out of memory.
Jun 18 00:02:38 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740958: Error: Out of memory.
Jun 18 00:02:49 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740969: Error: Out of memory.
Jun 18 00:03:00 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740979: Error: Out of memory.
Jun 18 00:03:11 wirenboard-AY2DVMO5 mosquitto[12074]: 1781740991: Error: Out of memory.
Jun 18 00:03:22 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741002: Error: Out of memory.
Jun 18 00:03:33 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741013: Error: Out of memory.
Jun 18 00:03:44 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741024: Error: Out of memory.
Jun 18 00:03:55 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741035: Error: Out of memory.
Jun 18 00:04:06 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741046: Error: Out of memory.
Jun 18 00:04:17 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741057: Error: Out of memory.
Jun 18 00:04:28 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741068: Error: Out of memory.
Jun 18 00:04:39 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741079: Error: Out of memory.
Jun 18 00:04:50 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741090: Error: Out of memory.
Jun 18 00:05:01 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741101: Error: Out of memory.
Jun 18 00:05:12 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741112: Error: Out of memory.
Jun 18 00:05:23 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741123: Error: Out of memory.
Jun 18 00:05:34 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741134: Error: Out of memory.
Jun 18 00:05:45 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741145: Error: Out of memory.
Jun 18 00:05:56 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741156: Error: Out of memory.
Jun 18 00:06:07 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741167: Error: Out of memory.
Jun 18 00:06:18 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741178: Error: Out of memory.
Jun 18 00:06:29 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741189: Error: Out of memory.
Jun 18 00:06:40 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741200: Error: Out of memory.
Jun 18 00:06:51 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741211: Error: Out of memory.
Jun 18 00:07:02 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741222: Error: Out of memory.
Jun 18 00:07:13 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741233: Error: Out of memory.
Jun 18 00:07:24 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741244: Error: Out of memory.
Jun 18 00:07:35 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741255: Error: Out of memory.
Jun 18 00:07:46 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741266: Error: Out of memory.
Jun 18 00:07:57 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741276: Error: Out of memory.
Jun 18 00:08:08 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741288: Error: Out of memory.
Jun 18 00:08:19 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741299: Error: Out of memory.
Jun 18 00:08:30 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741310: Error: Out of memory.
Jun 18 00:08:41 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741321: Error: Out of memory.
Jun 18 00:08:52 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741332: Error: Out of memory.
Jun 18 00:09:03 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741343: Error: Out of memory.
Jun 18 00:09:14 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741354: Error: Out of memory.
Jun 18 00:09:25 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741365: Error: Out of memory.
Jun 18 00:09:36 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741376: Error: Out of memory.
Jun 18 00:09:47 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741387: Error: Out of memory.
Jun 18 00:09:58 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741398: Error: Out of memory.
Jun 18 00:10:09 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741409: Error: Out of memory.
Jun 18 00:10:20 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741420: Error: Out of memory.
Jun 18 00:10:31 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741431: Error: Out of memory.
Jun 18 00:10:42 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741442: Error: Out of memory.
Jun 18 00:10:53 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741453: Error: Out of memory.
Jun 18 00:11:04 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741464: Error: Out of memory.
Jun 18 00:11:15 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741475: Error: Out of memory.
Jun 18 00:11:26 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741486: Error: Out of memory.
Jun 18 00:11:37 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741497: Error: Out of memory.
Jun 18 00:11:48 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741508: Error: Out of memory.
Jun 18 00:11:59 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741519: Error: Out of memory.
Jun 18 00:12:10 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741530: Error: Out of memory.
Jun 18 00:12:21 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741541: Error: Out of memory.
Jun 18 00:12:32 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741552: Error: Out of memory.
Jun 18 00:12:43 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741563: Error: Out of memory.
Jun 18 00:12:54 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741574: Error: Out of memory.
Jun 18 00:13:05 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741585: Error: Out of memory.
Jun 18 00:13:16 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741596: Error: Out of memory.
Jun 18 00:13:27 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741607: Error: Out of memory.
Jun 18 00:13:38 wirenboard-AY2DVMO5 mosquitto[12074]: 1781741618: Error: Out of memory.

Почасовые срезы памяти также не создался, логи не ведет, команда верная?

Подправил, по идее такая команда должно заработать

cat > /etc/cron.d/mem-snapshot << 'EOF'
0 * * * * root { date '+\%F \%T'; free -m; ps -eo rss,comm --sort=-rss | head -6; echo; } >> /mnt/data/mem-snapshot.log 2>&1
EOF

Перезагрузил сервисы

systemctl restart mosquitto
systemctl restart wb-mqtt-serial
systemctl restart wb-rules
systemctl restart wb-homeui-backend nginx

получил доступ в вебе к диагностическому архиву, прикрепляю. Контроллер заработал но очень медленно, сказывается нехватка памяти видимо.

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

спустя день вижу что сервисы опять сыпятся, пока контроллер живой и дает возможность собрать диагностический архив - прикрепляю, по идее через сутки он уже повешается.

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

Игорь, добрый день.

Разобрали оба диагностических архива (04.07 и 05.07) — проблема не сводится к «течёт mosquitto».

Рекомендации:

  1. По возможности вынести Java-приложение «makesimple» и Corosync-кластер с контроллера на отдельную машину — на 2-ГБ WB7 рядом с 99 устройствами и mbgate на 2435 точек им не хватает бюджета памяти.
  2. Если оставлять на контроллере — ограничить потребление: -Xmx у JVM, SystemMaxUse= в /etc/systemd/journald.conf, и MemoryMax= в systemd drop-in для сторонних юнитов, чтобы они не могли уронить mosquitto.
  3. Привести в порядок RS-485: в логе постоянные request timed out и invalid crc по устройствам modbus:34, 35, 64, 97, 116–120, 137, 140, 159, 202 — проверьте проводку/терминаторы/питание и найдите сбойный прибор. Это дополнительно грузит CPU и раздувает журнал.
  4. Как времянка, чтобы контроллер не висел до наведения порядка — MemoryMax + авторестарт на растущие сервисы.

Подскажите, пожалуйста, что за приложение «makesimple» и зачем на контроллере Corosync — с этим пониманием предложим более точное решение по разгрузке.

По поводу 1-2 пунктов, такое решение предполагал, но оно не совсем верное тк в такой конфигурации контроллер работает уже много лет, и раньше проблема не наблюдалась, соответственно и что-то придумывать не хотелось, ведь явно причина появилась после каких-то изменений/обновлений и тд.

  1. Линии также те же на связи что и были много лет назад, ничего не добавилось/не прибавилось, кроме обновлений.

makesimple = Spruthub, Corosync - это очень маленький демон, служит голосом для квоты серверов proxmox (вряд ли он там много потребляет или занимает ресурсов)

Размер потребляемой сервисом wb-mqtt-serial памяти не увеличиввается. А вот

  PID  PPID CMD                         %MEM %CPU     TIME
 7129  2147 /mnt/data/makesimple/jdk/bi 25.1 83.3 1-09:48:58

лидер.

да верно, Spruthub всегда потреблял много и раньше, но в таком режиме и с таким количеством девайсов контроллер работает около 5 лет, утечки памяти ранее не наблюдалось (кроме случаев москито на старых прошивках) а в остальном все хорошо. Могу еще предположить проблему с wb-engine для проброса в HA, но и он ранее также работал.

По поводу

modbus:34, 35, 64, 97, 116–120, 137, 140, 159, 202 — проверьте проводку/терминаторы/питание и найдите сбойный прибор

Это все датчики MSW v3, все они находятся на разных линиях, если быть точным на 5 линиях, на каждой линии есть помимо них еще много других модулей, поэтому вариант что проблема с проводкой - отсекаю. Тут либо прошивка новая MSW выдает такие перлы либо возможно драйвер не правильно обрабатывает. Все данные модули работают также уже много лет.

Для примера: Шина с несколькими WB-MSW. Вtрсии v3 и v4, прошивки актуальные testing

journalctl --since "24 hour ago" -u wb-mqtt-serial
-- Journal begins at Tue 2023-05-30 03:05:39 UTC, ends at Mon 2026-07-06 12:39:06 UTC. --
Jul 06 10:57:00 wirenboard-AGH767IU wb-mqtt-serial[22372]: WARNING: [modbus] failed to read 14 input(s) @ 270 of device modbus:98: Serial protocol error: request timed out

То есть возможно, конечно, что в прошивке что-то, но crc - это когда по шине дошло до устройства от мастера, затем устройство отправило ответ и в нем, в ответе - не сошелся код.
Таймауты - когда устройство не получило запрос или получило тоже с ошибкой и не ответило.
Чтобы точно установить причину ошибок - нужно определить минимальный набор при котором они возникают. То есть, например отключить опрос всех устройств кроме одного датчика. Если будет воспроизводиться - переключить датчик прямо к контроллеру коротким проводом. Если продолжит воспроизводиться - тогда дело точно в датчике.

Но с ростом памяти, думаю, никак не связано.

Значит, мы нашли приложение, которое загружает ресурсы вашего контроллера. К сожалению, более точную причину такого поведения сообщить не могу, так как это ПО стороннее.

Как будет возможность - остановлю процесс Spruthub и протестирую, результат будет тот же, тк уже один раз так делал. Кроме него каки еще есть варианты? Отключать все датчики на линии - глупость как по мне, они работают как и работали раньше. По разным тестам пока пришел только в проблеме с wb-mqtt-serial в последних обновлениях. Вы пробовали тестировать данный драйвер на таком большом количестве устройств?

Целесообразно тогда оценить занимаемую процессом память - ну, несколько раз. Точнее даже - просто получить список процессов, через какие-то промежутки времени. Потом просто сравнить - виновника сразу будет видно.

Сколько по логам wb-mqtt-serial памяти занимает? Во время тестов он вырастает с 24 до 200-700мб за пару дней, накапливает это все и выкидывает в москито, тот вешается с out of memory. Могу предположить что он накапливает те самые invalid crc природу которых и связь с чем-то я пока не нашел. Может ли он накопить аж 700мб из-за нескольких датчиков и ошибок invalid crc?