Mosquitto в режиме bridges

Имеется контроллер

wb-fw-version 202404081103
uname -a
Linux wirenboard-AKV4NMM2 5.10.35-wb164 #1 SMP Fri Mar 22 15:05:23 UTC 2024 armv7l GNU/Linux
cat /etc/mosquitto/conf.d/20bridges.conf
topic /devices/#  both 0  "" ""
topic homeassistant/# out 0 "" ""

Всё бы хорошо, но Соединение не качественное. openvpn через LTE.

При долгом отсутствие канала падает mosquitto и не стартует.
В логах:

mosquitto[18440]: 1719322910: Error: Out of memory.
mosquitto[18440]: 1719322910: Error: Couldn't open database.
systemd[1]: Failed to start Mosquitto MQTT Broker.

На форуме нашёл решение
rm /mnt/data/var/lib/mosquitto/*
с перезагрузкой контроллера.

Вопрос: Может как-то по другому сконфигурировать /etc/mosquitto/conf.d/20bridges.conf - и что бы bridge работал и чтоб падение канала не приводили к фатальным последствиям?

Спасибо.

Добрый день.

Вот тут когда-то описывал параметры.
Вы указываете QOS 0. Как планируете ограничивать длину (глубину) очередей в таком режиме?
Тема уже поднималась: Работа без Интернета - #4 от пользователя BrainRoot

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

Спасибо.

Добавил следующие строки:

try_private false
start_type automatic
max_queued_messages 20
bridge_insecure true
cleansession false

Возник вопрос max_queued_messages 20 - Хватит ли на “все” топики? Как правильно посчитать размер очереди?

Это - отличный вопрос .
На него ответить не так просто, от стратегии зависит. “Идеальная” - когда в очереди копится все что (должно) быть передано на удаленный хост. Но тут есть естественные ограничения по объему памяти. Так что приходится себя ограничивать…

Можно просто посмотреть. так как в мост выбрана передача всех подтопиков /devices/# - то оценим сколько публикаций за 10, например, секунд:

timeout 10 mosquitto_sub  -t /devices/# | ts