Mosquitto - 100% CPU, не зайти по ssh, имещиеся сесси повисли

Добрый день

WB 8.5, 21го обновлёно всё что могло обновиться

Повесился на ночь на ровном месте

  • mosquitto 100% CPU

  • новые коннекты по ssh не установить - обмен ключами происходит, но приглашения пароля нет (как по сети eth0 так и по usb)

  • minicom конектится, но ничего не показывает и на нажатия не реагирует

  • в имевшейся сессия ssh+screen в одном окне шевелился top, но в другом что-ли делать было невозможно - реагировало минут через 10 на ввод

В не занятом окне набрал reboot и пошёл спать.

Утром картина таже - не зайти, но видно что перезагрузился.

Что менялось

  • днём удалось подбором параметра заставить стабильно работать стороннее устройство - из всего что пробовал хватило “Задержка между сообщениями = 100”

  • вечером создал виджет для этого стороннего устройства с 8 контролами из 36 и добавил в одну из панелей (это там стал 13 виджет)

И вот после этого минут через 10 всё легло.

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

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

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

New client connected from 127.0.0.1:46358 as Net::MQTT::Simple[BFCKMKMCTY] 

Высоковероятно, судя по нагрузке - цикл в правилах.

это опрос раз в минуту стороннего api и публикация значений в 14 контролов виртуального устройста

такой вот “мост” на чтение, там и таймауты есть

но что бы СТОЛЬКО накопилось, скажем, из-за белых списков когда стороннее api было недоступно - не первые выходный когда белые списки были на сети - там с 500 Timeout отваливается

по симптомам, конечено, похоже на расплодившиеся процессы, то по top их тогда было 187 когда начало плохеть, а сейчас 185 после ребута…

14 тысяч в минуту?
Подозреваю что не в этом дело.
Рекомендую подписаться на топики да посмотреть - это, пожалуй, проще.

просто 14 (четырнадцать )

без тысяч :slight_smile:

Я вижу в логе подозрительно большое количество - проверьте источник пожалуйста. Для этого подпишитесь на топики брокера - ну и оцените, что публикует.

всё ожидаемо - раз в минут 60 топиков (да, не 14. 14 это выведено в виджет)

я бы списал в итоге на фазу луны - может быть что-то от регулярных апдейтов ПО без перезапуска по тому, что по симптомам жор от mosquitto это может быть и следствие - он всё же только одно ядро из четырёх потреблял,а вот то, что не зайти и всё еле шевелится это какой-то ресурс операционки кончился (судя по top не своп и не количество процессов) и ребут по этому и помог.

В логе - 14000 то есть 14 тысяч.

Сейчас не воспроизводится?

В логе - 14000 то есть 14 тысяч.

покажите, пожалуйста, что именно вы посчитали

не воспроизводится - после ребута “всё хорошо”

(а после последнего апдейта web-ui ещё и браузер прекратил цпу кипятить - счастье)

В диагностическом архиве в файле mosquitto-sys.log

это ответ на вопрос “где”, а не на вопрос “что”

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

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

окей, на что смотреть для понимания “количества” ?

Ну, например

timeout --foreground -s 15 10s mosquitto_sub -v -t '#' |wc -l

нет, мы о разном - вы про то как смотреть что пишется в топики, а я про то как по логам понять как вы получили 14.0000

ещё раз попробую сформулировать

у вас диагностический архив, в нём часть логов посмотрев которые вы пишите Судя по логу - в брокер публикуется больше 14к топиков в минуту

На что мне смотреть в логах что бы тоже насчитать за тот промежуток времени 14.000 публикаций в минуту ?

Открыть файл статистики брокера.
Найти в нем строчку “$SYS/broker/load/messages/received/1min”
В ней значение.
Выглядит оно так:


Ну или подписаться на эти же топики брокера. В архиве - просто результат подписки на них.

нашёл в архиве, спасибо

но это же снимок на момент создания диагностического архтива ?

т.е. уже после того как всё из-за ребута рассосалось - это не ответит что случлось

сейчас подписался - 18 тысяч в минуту

вот статистика по тем что дали более 100 в минуту

структура по девайсам у меня удивления не вызывает

общее количество в минуту - ну значит столько при таком количестве девайсов

(по большинству параметров стоит “в порядке очереди”, но от WB-MAP-ов у части напряжений и мощностей стоит “200мс”, а части токов - “100мс”)