на версии 2.248.1-wb101 через 1-2 дня начинает увеличиваться память и в конечном итоге когда занимает 700мб - вешается москито и перестает работать контроллер. Это повторяется уже несколько раз, причину утечки не вижу - все модули и тд которые работают уже много лет, и кто как с обновлением - никак не могу связать.
Добрый день.
Похоже на накопление сообщений в хранилище брокера (mosquitto). Чтобы найти причину, нужно увидеть динамику — поэтому просьба собрать несколько вещей.
Для начала рекомендую обновить контроллер до последнего стабильного релиза, если это ещё не сделано, — в новых версиях исправлено много ошибок, возможно, проблема уйдёт. Если после обновления она сохранится, для диагностики пришлите, пожалуйста, следующее.
-
Диагностический архив.** Снимите его желательно в момент, когда память уже выросла, но контроллер ещё работает. Как создать архив, описано в документации.
-
Почасовые срезы памяти.** Чтобы увидеть общую динамику занятости памяти, заведите почасовой снимок. Выполните по 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 — по нему будет видно, какой процесс растёт.
- Снимок состояния брокера.** Когда память уже подросла, выполните по очереди две команды и пришлите вывод.
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
получил доступ в вебе к диагностическому архиву, прикрепляю. Контроллер заработал но очень медленно, сказывается нехватка памяти видимо.
спустя день вижу что сервисы опять сыпятся, пока контроллер живой и дает возможность собрать диагностический архив - прикрепляю, по идее через сутки он уже повешается.
Игорь, добрый день.
Разобрали оба диагностических архива (04.07 и 05.07) — проблема не сводится к «течёт mosquitto».
Рекомендации:
- По возможности вынести Java-приложение «makesimple» и Corosync-кластер с контроллера на отдельную машину — на 2-ГБ WB7 рядом с 99 устройствами и mbgate на 2435 точек им не хватает бюджета памяти.
- Если оставлять на контроллере — ограничить потребление:
-Xmxу JVM,SystemMaxUse=в/etc/systemd/journald.conf, иMemoryMax=в systemd drop-in для сторонних юнитов, чтобы они не могли уронить mosquitto. - Привести в порядок RS-485: в логе постоянные
request timed outиinvalid crcпо устройствам modbus:34, 35, 64, 97, 116–120, 137, 140, 159, 202 — проверьте проводку/терминаторы/питание и найдите сбойный прибор. Это дополнительно грузит CPU и раздувает журнал. - Как времянка, чтобы контроллер не висел до наведения порядка —
MemoryMax+ авторестарт на растущие сервисы.
Подскажите, пожалуйста, что за приложение «makesimple» и зачем на контроллере Corosync — с этим пониманием предложим более точное решение по разгрузке.
По поводу 1-2 пунктов, такое решение предполагал, но оно не совсем верное тк в такой конфигурации контроллер работает уже много лет, и раньше проблема не наблюдалась, соответственно и что-то придумывать не хотелось, ведь явно причина появилась после каких-то изменений/обновлений и тд.
- Линии также те же на связи что и были много лет назад, ничего не добавилось/не прибавилось, кроме обновлений.
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?