Страница 1 из 1
MQTT publish загружает систему
Добавлено: Ср июн 19, 2019 12:55 pm
amelnyk
Бьюсь об стену головой уже который день... прошу помочь.
На винде крутитится Мажордомо, на этом же компе запущен MQTT брокер mosquitto. К этому брокеру подключены 5 контроллеров esp8266, тут всё работает чудесно.
В Мажородоме установлен модуль MQTT. Сделал привязку около 10 знаячений к свойствам обьектов. Мажордом коннектится, слушает свои подписки, и тут всё хорошо.
Но, как только Мажордом начинает паблишить в MQTT об измененных значениях (для теста просто клацаю переключатель несколько раз, который постит типа "/rele01/0", "/rele01/1" )
После чего процесс Apache.exe начинает дико жрать процессор, нагружает его до 100%, система начинает дико тупить, ну как бы нерабочая становится.
Если вырубить MQTT брокер, и так же клацать переключателями, проблемы не возникает. Как только включаю брокер и мажордом начинает ему постить, всё...
Re: MQTT publish загружает систему
Добавлено: Чт июн 20, 2019 12:28 pm
nick7zmail
По идее апач в этом процессе вообще не задействован. Это очень странное поведение. А что в логах брокера? Самого апача?
Re: MQTT publish загружает систему
Добавлено: Чт июн 20, 2019 12:30 pm
directman66
Имхо запускается циклический цикл. Мажор принимает новые значения, получаемые от устройств, и по ним же отрабатывает новые действия. Я с таким сталкивался с лампочками. Пока как решить, не знаю.
И кстати тоже висит апач, видимо из за того, что нет ресурсов. Перезапуск апача решает проблему, что очень странно.
Re: MQTT publish загружает систему
Добавлено: Чт июн 20, 2019 12:39 pm
nick7zmail
directman66 писал(а): ↑Чт июн 20, 2019 12:30 pm
И кстати тоже висит апач, видимо из за того, что нет ресурсов. Перезапуск апача решает проблему, что очень странно.
Да не, не странно. Переполняется из за цикличности в МД оператива, занимаются ресурсы, когда ресурсы превысили норму - приложение убивается. Когда его перезапускаешь - выделенная память высвобождается, и всё продолжает работать. Тут как раз всё логично.
Re: MQTT publish загружает систему
Добавлено: Чт июн 20, 2019 12:43 pm
JackOfShadows
nick7zmail писал(а): ↑Чт июн 20, 2019 12:39 pm
directman66 писал(а): ↑Чт июн 20, 2019 12:30 pm
И кстати тоже висит апач, видимо из за того, что нет ресурсов. Перезапуск апача решает проблему, что очень странно.
Да не, не странно. Переполняется из за цикличности в МД оператива, занимаются ресурсы, когда ресурсы превысили норму - приложение убивается.
Освобождать память - не вариант?
Re: MQTT publish загружает систему
Добавлено: Чт июн 20, 2019 12:58 pm
directman66
Что за устройства у вас? Они реально спамят в сеть? Подпишитесь через mosqutto_sub и понаблюдайте.
Re: MQTT publish загружает систему
Добавлено: Чт июн 20, 2019 1:19 pm
nick7zmail
JackOfShadows писал(а): ↑Чт июн 20, 2019 12:43 pm
Освобождать память - не вариант?
Там я прокомментировал просто почему рестарт апача спасает в том случае. Вам надо понять для начала 1) тот же у вас случай или нет 2) что у вас действительно творится в сети. Вполне возможна где-то ошибка в коде или что нить подобное. (как на самих устройствах так и в МД).
Re: MQTT publish загружает систему
Добавлено: Чт июн 20, 2019 1:40 pm
amelnyk
По идее апач в этом процессе вообще не задействован. Это очень странное поведение. А что в логах брокера? Самого апача?
в логах ниче нового, ни в апаче, ни в брокере. ну, тоесть брокер медленно тормозя, но продолжает работать. видно что от мажордома приходят коннекшны и тп, но это происходит с большой задержкой.
Имхо запускается циклический цикл. Мажор принимает новые значения, получаемые от устройств, и по ним же отрабатывает новые действия. Я с таким сталкивался с лампочками. Пока как решить, не знаю.
увы, но нет. подписка по другому пути, отличной от той, куда он постит значения. в логах брокера видно, что нету обратной отсылки значения клиенту мажордома
Да не, не странно. Переполняется из за цикличности в МД оператива, занимаются ресурсы, когда ресурсы превысили норму - приложение убивается. Когда его перезапускаешь - выделенная память высвобождается, и всё продолжает работать. Тут как раз всё логично.
в моём случае оперативка не переполняется. загружается только процессор. через какой-то время его отпустит и он вернется в нормальный режим. но это может быть и минут 10. сомтря сколько наклацать переключателей.
Что за устройства у вас? Они реально спамят в сеть? Подпишитесь через mosqutto_sub и понаблюдайте.
вы про какие устройства? со стороны мажордома - это обычные выключатели, к изменению статуса которых привязан путь в MQTT.
другие контроллеры, что подклбючены к брокеру сеть не спамят, там значения раз в минуту приходят. ну и я проверял, отключал их и тп. проблемы у мажордома нету, когда он просто слушает свои подписки. Проблемы начинаются непосредственно при вызове метода mqttPublish. в нём он создает новый коннекшн к брокеру(при каждом изменении значения переключателя ). И видимо когда он это делает параллельно в нескольков потоков, тут то и начинается беда.
Re: MQTT publish загружает систему
Добавлено: Пт июн 21, 2019 6:48 am
nick7zmail
Имхо - модуль МКУТТ работает неправильно...я тут посмотрел в лог москито, как он работает и охренел.
При нормальном порядке вещей - создаётся 1 коннект, и постятся/получаются топики. При работе модуля он какого то хрена создаёт новый коннект каждый раз, как отправляет сообщение. Для брокера, по моему, это тихий ужас)))
Re: MQTT publish загружает систему
Добавлено: Пт июн 21, 2019 8:34 am
amelnyk
да, я копался в исходниках. там без вариантов, на каждый publish, новый коннекшн. полагаю использование одного коннекшна помогло бы. но тем не менее, люди ж юзают MQTT модуль и с такой реализацией и им ок... може чего в конфигах покрутить...хз