на версии 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'
По собранным данным мы увидим, что именно растёт, и подскажем, что делать дальше
Также уточните, пожалуйста: развёрнуто ли на контроллере стороннее ПО? Если да — какое именно.
Добрый день,
Удалось ли решить вопрос?