Properties history queue is too long

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

Модератор: immortal

Ответить
Аватара пользователя
Kostosso
Сообщения: 29
Зарегистрирован: Чт фев 08, 2018 4:32 pm
Благодарил (а): 14 раз
Поблагодарили: 1 раз

Properties history queue is too long

Сообщение Kostosso » Пт фев 08, 2019 1:40 pm

Здравствуйте,
Я только начинаю разбираться в MD по этому не ругайте сильно.
Система установлена несколько дней назад и находится в тестовом режиме. Есть ESP8266 с BMP085/180 и AM2321, а также датчиком движения и одним управляемым реле (тестовая сборка - разобраться, пощёлкать).
Несколько дней всё ок, начал писать первую логику и тут... Перестали отображаться графики на сценах.
В Система/Ошибки системы возникло следующее сообщение "phistory_queue 2 02/05/2019 18:22:49". Если "раскрыть" ошибку -
2019-02-05 18:22:49
Properties history queue is too long (278)
Backtrace:
#0 /var/www/html/scripts/cycle_phistory.php(69): registerError('phistory_queue', 'Properties hist...')
#1 {main}

2019-02-05 02:48:59
Properties history queue is too long (207)
Backtrace:
#0 /var/www/html/scripts/cycle_phistory.php(69): registerError('phistory_queue', 'Properties hist...')
#1 {main}

Пытался выполнить оптимизацию. Определил "переполняющиеся" переменные. ( см файл Hist_1.jpg)
Сделал такие правила оптимизации для этих переменных.
SHumSensors espSensor_humidity02 value 3
STempSensors espSensor_temp05 value 3 avg
Количество накопленных значений резко сократилось ( см файл Hist_2.jpg)
Но графики работать не стали и ошибка не исчезла.

Помогите, пожалуйста, куда копать, и что посмотреть...
на всякий случай прикладываю лог Apache

Доп информация:
  • Источник обновлений ядра: Альфа
  • Ставил готовый образ от Сергея из "Базовый образ Raspberry Pi3 / Pi2"
  • Нештатных завершений работы сервера в этот период не случалось
  • Время системное сразу после старта ОС корректное (на главном экране системы)
  • В Интернет МДМ выставлен
Вложения
Hist_1.jpg
Состояние переменных до оптимизации
Hist_1.jpg (92.16 КБ) 3360 просмотров
Celeron J1800 8gb, Ubuntu Server, ESP8266 на WiFi-IoT, Broadlink RMPro_SC1_SP3S_MP1
fandaymon
Сообщения: 1554
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: Properties history queue is too long

Сообщение fandaymon » Пт фев 08, 2019 2:16 pm

Kostosso писал(а):
Пт фев 08, 2019 1:40 pm
Здравствуйте,
Я только начинаю разбираться в MD по этому не ругайте сильно.
Система установлена несколько дней назад и находится в тестовом режиме. Есть ESP8266 с BMP085/180 и AM2321, а также датчиком движения и одним управляемым реле (тестовая сборка - разобраться, пощёлкать).
Несколько дней всё ок, начал писать первую логику и тут... Перестали отображаться графики на сценах.
2019-02-05 18:22:49
Properties history queue is too long (278)
Это означает что данные поступают с такой скоростью, что система не может их нормально обработать. Сначала данные попадают в очередь, а потом phistory цикл их из очереди обрабатывает. В цикле стоит проверка на размер очереди, по умолчанию 200, и если в очереди больше чем 200 записей, то выдаётся предупреждение. Надо смотреть почему данные поступают с такой интенсивностью, обычно никому не нужны данные о давлении и температуре чаще чем раз в минуту... Ну и если всё-таки данные поступают достаточно редко, тогда надо смотреть почему они так медленно обрабатываются - нет ли каких-нибудь подводных каменей в коде, обрабатывающем данные
Последний раз редактировалось fandaymon Пт фев 08, 2019 3:24 pm, всего редактировалось 1 раз.
За это сообщение автора fandaymon поблагодарили (всего 2):
xor (Сб фев 09, 2019 12:55 am) • Kostosso (Сб фев 09, 2019 3:50 pm)
Рейтинг: 2.33%
Аватара пользователя
Kostosso
Сообщения: 29
Зарегистрирован: Чт фев 08, 2018 4:32 pm
Благодарил (а): 14 раз
Поблагодарили: 1 раз

Re: Properties history queue is too long

Сообщение Kostosso » Пт фев 08, 2019 2:31 pm

Согласен, нет никакого смысла получать с такой периодичностью данные о температуре и влажности помещения. В настройках WiFi-IoT изменил интервал обновления датчиков на 2 минуты (ранее было установлено 5 секунд. Как я понял, это значение по умолчанию).
А не подскажите, плиз, как исправить сложившуюся на данный момент ситуацию?
(Интересно, что я только что проверил МД - графики отобразились, но с 14:00 вчера до 4:00 сегодня! а текущих значений на графике опять нет.
Celeron J1800 8gb, Ubuntu Server, ESP8266 на WiFi-IoT, Broadlink RMPro_SC1_SP3S_MP1
fandaymon
Сообщения: 1554
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: Properties history queue is too long

Сообщение fandaymon » Пт фев 08, 2019 2:58 pm

Kostosso писал(а):
Пт фев 08, 2019 2:31 pm
Согласен, нет никакого смысла получать с такой периодичностью данные о температуре и влажности помещения. В настройках WiFi-IoT изменил интервал обновления датчиков на 2 минуты (ранее было установлено 5 секунд. Как я понял, это значение по умолчанию).
А не подскажите, плиз, как исправить сложившуюся на данный момент ситуацию?
(Интересно, что я только что проверил МД - графики отобразились, но с 14:00 вчера до 4:00 сегодня! а текущих значений на графике опять нет.
Ну я бы радикально поступил - зашел бы в phpmyadmin и удалил бы все записи из таблицы phistory_queue. По идее дальше всё должно работать
Аватара пользователя
Kostosso
Сообщения: 29
Зарегистрирован: Чт фев 08, 2018 4:32 pm
Благодарил (а): 14 раз
Поблагодарили: 1 раз

Re: Properties history queue is too long

Сообщение Kostosso » Сб фев 09, 2019 3:50 pm

fandaymon писал(а):
Пт фев 08, 2019 2:16 pm
Kostosso писал(а):
Пт фев 08, 2019 1:40 pm
Здравствуйте,
Я только начинаю разбираться в MD по этому не ругайте сильно.
Система установлена несколько дней назад и находится в тестовом режиме. Есть ESP8266 с BMP085/180 и AM2321, а также датчиком движения и одним управляемым реле (тестовая сборка - разобраться, пощёлкать).
Несколько дней всё ок, начал писать первую логику и тут... Перестали отображаться графики на сценах.
2019-02-05 18:22:49
Properties history queue is too long (278)
Это означает что данные поступают с такой скоростью, что система не может их нормально обработать. Сначала данные попадают в очередь, а потом phistory цикл их из очереди обрабатывает. В цикле стоит проверка на размер очереди, по умолчанию 200, и если в очереди больше чем 200 записей, то выдаётся предупреждение. Надо смотреть почему данные поступают с такой интенсивностью, обычно никому не нужны данные о давлении и температуре чаще чем раз в минуту... Ну и если всё-таки данные поступают достаточно редко, тогда надо смотреть почему они так медленно обрабатываются - нет ли каких-нибудь подводных каменей в коде, обрабатывающем данные
Спасибо, всё удачно разрешилось. Данные начали отображаться. Я уменьшил время опроса датчиков с 5 до 120 секунд (в настройках WiFi-IoT. Как это сделать средствами МД я не нашёл. Подскажите, плиз, кто знает - есть ли такая возможность в МД?).
Остался вопрос, что будет при увеличении количества датчиков. Как определить скорость опроса при увеличении количества с 4 до 50. Есть ли рекомендации по этому поводу? Зависит ли пропускная способность от железа сервера, Стоит ли, в случае увеличения количества датчиков, переходить на нетбук или atom содержащее железо?
За это сообщение автора Kostosso поблагодарил:
Samir77 (Ср мар 13, 2019 7:50 pm)
Рейтинг: 1.16%
Celeron J1800 8gb, Ubuntu Server, ESP8266 на WiFi-IoT, Broadlink RMPro_SC1_SP3S_MP1
fandaymon
Сообщения: 1554
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: Properties history queue is too long

Сообщение fandaymon » Сб фев 09, 2019 5:34 pm

Kostosso писал(а):
Сб фев 09, 2019 3:50 pm
Остался вопрос, что будет при увеличении количества датчиков. Как определить скорость опроса при увеличении количества с 4 до 50. Есть ли рекомендации по этому поводу? Зависит ли пропускная способность от железа сервера, Стоит ли, в случае увеличения количества датчиков, переходить на нетбук или atom содержащее железо?
Экспериментальным путём - подключить 50 датчиков, поставить опрос раз в минуту, лучше конечно чтобы этот раз в минуту для всех датчиков не случался одновременно... Если будет затыкаться, то увеличить время опроса.
Время обработки естественно напрямую зависит от железа - грубо говоря для каждого значения, поступающего в систему, нужно сделать порядка десятка вызовов sql, отработать связанные с изменением значения методы, а если в этих методах меняются какие-нибудь другие значения, то и методы, связанные с этими значениями. И чем сложнее схема связей, тем больше ресурсов требуется.
За это сообщение автора fandaymon поблагодарил:
Samir77 (Ср мар 13, 2019 8:31 pm)
Рейтинг: 1.16%
Logrus
Сообщения: 2084
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 457 раз

Re: Properties history queue is too long

Сообщение Logrus » Сб фев 09, 2019 11:00 pm

маленько дополню выше на примере сяоми
приходят данные от сенсоров только по изменению, точность два знака
с модуля приходят с точностью в один знак пишутся без сохранения (это для логики, точности в один знак достаточно)
в историю пишется через фильтр если новое не равно записанному с точностью 0.5 (это для графиков, точность 0.5 даже излишняя, можно и целые писать в графике интерполируется)

п.с. на малинке так можно повесить хоть 32 датчика т, в, д: т.е. 32*3 канала и никакой нагрузки не будет, показания инертны, часто не меняются, потом еще и фильтруются
За это сообщение автора Logrus поблагодарил:
Samir77 (Ср мар 13, 2019 8:30 pm)
Рейтинг: 1.16%
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Ответить