История phistory + phistory_queue

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

alemoke
Сообщения: 14
Зарегистрирован: Пт янв 17, 2020 3:40 pm
Благодарил (а): 4 раза
Поблагодарили: 0

История phistory + phistory_queue

Сообщение alemoke » Ср сен 22, 2021 10:25 am

Доброго времени суток!

Случилась проблема с записью истории phistory. Все проработало 9 месяцев и собрало около 200к записей. На всех объектах стоит запись за 1000 дней. Объёма на диске более чем достаточно. Началась копится очередь phistory_queue. Удалил опять работает некоторое время, после чего начинает копить. Количество объектов или частота опроса не поменялась. Может подскажете каким советом или алгоритмом в целом как это работает и в какую сторону смотреть ?
Вложения
4.jpg
4.jpg (37.15 КБ) 1528 просмотров
3.jpg
3.jpg (255.46 КБ) 1528 просмотров
2.jpg
2.jpg (220.99 КБ) 1528 просмотров
1.jpg
1.jpg (27.25 КБ) 1528 просмотров
Logrus
Сообщения: 2079
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 457 раз

Re: История phistory + phistory_queue

Сообщение Logrus » Ср сен 22, 2021 5:13 pm

судя по скринам у вас не только с очередью проблемы
саму табличку очереди сделайте тип мемори, а не иннодб, для начала
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
alemoke
Сообщения: 14
Зарегистрирован: Пт янв 17, 2020 3:40 pm
Благодарил (а): 4 раза
Поблагодарили: 0

Re: История phistory + phistory_queue

Сообщение alemoke » Ср сен 22, 2021 8:43 pm

Logrus писал(а):
Ср сен 22, 2021 5:13 pm
судя по скринам у вас не только с очередью проблемы
саму табличку очереди сделайте тип мемори, а не иннодб, для начала
сделаю, а с чем еще ?
Logrus
Сообщения: 2079
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 457 раз

Re: История phistory + phistory_queue

Сообщение Logrus » Ср сен 22, 2021 9:35 pm

на первом скрине куча мусорных свойств и циклов
на втором иннодб много где, и значит там много подобного, как и ошибок в систем еррорс дата
по третьему, посмотреть бы вообще необходимость такой глубины и количества свойств с историей это в модуле оптимайзер можно

в общем имхо ничего ни где не настроено
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
alemoke
Сообщения: 14
Зарегистрирован: Пт янв 17, 2020 3:40 pm
Благодарил (а): 4 раза
Поблагодарили: 0

Re: История phistory + phistory_queue

Сообщение alemoke » Чт сен 23, 2021 11:55 am

Для изменения phistory_queue в мемори пройдётся указать размерность для text полей.
Учитывая что дискретных значений в моем случаи больше чем аналоговых, это перерасход.

Циклов мусорных может и много но они все остановлены. С свойствами та же история, они есть, не меняются, соответственно в phistory не попадают ( я пересмотрел все содержания таблицы). Туда попали только те данные которые мне нужны.

Скорее всего происходит блокировка таблицы phistory после чего все идет в тартарары.

Ошибки в сустем еррорс дата очень старые, сейчас очистил полностью. Понаблюдаю...
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

Re: История phistory + phistory_queue

Сообщение xor » Чт сен 23, 2021 12:19 pm

alemoke писал(а):
Чт сен 23, 2021 11:55 am
Для изменения phistory_queue в мемори пройдётся указать размерность для text полей.
Учитывая что дискретных значений в моем случаи больше чем аналоговых, это перерасход.

Циклов мусорных может и много но они все остановлены. С свойствами та же история, они есть, не меняются, соответственно в phistory не попадают ( я пересмотрел все содержания таблицы). Туда попали только те данные которые мне нужны.

Скорее всего происходит блокировка таблицы phistory после чего все идет в тартарары.

Ошибки в сустем еррорс дата очень старые, сейчас очистил полностью. Понаблюдаю...
судя по росту очереди истории, ваша система не успевает ее разгребать. может быть несколько причин для этого.
разгребание очереди состоит в переносе данных из нее в таблицу истории. по меркам мдм, она у вас довольно большая.
при каждой попытке записи в нее происходит ее блокировка. я б предложил посмотреть в сторону изменения ее типа на инно дб. там блокируется не вся таблица, а только изменяемая запись. с одной стороны, это может увеличить скорость обработки, с другой - может привести к конфликтам записи - я не видел в мдм обработки конфликтов для инно дб(
у себя я в таблице истории держу только три месяца, каждое первое число вырезаю данные из пхистори старые и отправляю в другую таблицу - архив.
За это сообщение автора xor поблагодарил:
alemoke (Чт сен 23, 2021 1:05 pm)
Рейтинг: 1.16%
Logrus
Сообщения: 2079
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 457 раз

Re: История phistory + phistory_queue

Сообщение Logrus » Чт сен 23, 2021 2:55 pm

alemoke писал(а):
Чт сен 23, 2021 11:55 am
Для изменения phistory_queue в мемори пройдётся указать размерность для text полей.
Учитывая что дискретных значений в моем случаи больше чем аналоговых, это перерасход.

Циклов мусорных может и много но они все остановлены. С свойствами та же история, они есть, не меняются, соответственно в phistory не попадают ( я пересмотрел все содержания таблицы). Туда попали только те данные которые мне нужны.

Скорее всего происходит блокировка таблицы phistory после чего все идет в тартарары.

Ошибки в сустем еррорс дата очень старые, сейчас очистил полностью. Понаблюдаю...
на гите в модули об!ект клас общий посмотрите, там эти поля чар255 и никак не текст, далее в пхистори и пвалюес они тоже чар255

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

у вас вообще цикл пхистори остановлен, но хз как долго и за какое время там накопилось 5к значений, что в принципе ихо тоже очень много, фильтровать нужно запись в историю!

п.с. смысл советовать, когда не воспринимают их совсем :(
п.п.с убрать иннодб не просто так сказал, она может поломаться и далее цикл упасть, и вообще зачем очередь писать на диск, а не в память
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
alemoke
Сообщения: 14
Зарегистрирован: Пт янв 17, 2020 3:40 pm
Благодарил (а): 4 раза
Поблагодарили: 0

Re: История phistory + phistory_queue

Сообщение alemoke » Пт сен 24, 2021 10:29 am

Logrus писал(а):
Чт сен 23, 2021 2:55 pm
alemoke писал(а):
Чт сен 23, 2021 11:55 am
Для изменения phistory_queue в мемори пройдётся указать размерность для text полей.
Учитывая что дискретных значений в моем случаи больше чем аналоговых, это перерасход.

Циклов мусорных может и много но они все остановлены. С свойствами та же история, они есть, не меняются, соответственно в phistory не попадают ( я пересмотрел все содержания таблицы). Туда попали только те данные которые мне нужны.

Скорее всего происходит блокировка таблицы phistory после чего все идет в тартарары.

Ошибки в сустем еррорс дата очень старые, сейчас очистил полностью. Понаблюдаю...
на гите в модули об!ект клас общий посмотрите, там эти поля чар255 и никак не текст, далее в пхистори и пвалюес они тоже чар255

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

у вас вообще цикл пхистори остановлен, но хз как долго и за какое время там накопилось 5к значений, что в принципе ихо тоже очень много, фильтровать нужно запись в историю!

п.с. смысл советовать, когда не воспринимают их совсем :(
п.п.с убрать иннодб не просто так сказал, она может поломаться и далее цикл упасть, и вообще зачем очередь писать на диск, а не в память
Я делал скриншоты когда система phistory упала в стагнацию с очередью.
Писать очередь в память есть как и плюсы так и минусы. Основной минус, что будет если память закончится ? Упадет не только цикл phistory но и вся логика. Данных не так много, примерно 15 температурных датчиков и около 20 дискретных значений. Частота примерно 5 секунд. 5к записей это за сутки. На данном этапе так, потому что анализируются все переходные процессы системы и места оптимизации. Пока все крутится на Raspberry Pi 4 (4GB) если не удастся, оптимизировать под него, перейдем на машину по мощнее в которую можно будет доставить приличное количество памяти и воспользоваться вашим советом про мемори.

Перевел phistory с MyISAM в InnoDB. Ждал что select и графики которые строятся на основе phistory будут отрисовываться медленнее. Но нет, наоборот стало гораздо быстрее. После этого слил содержание phistory в другую таблицу. Оптимизатор настроил на 3 месяца. Пока, сутки все хорошо.
Logrus
Сообщения: 2079
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 457 раз

Re: История phistory + phistory_queue

Сообщение Logrus » Пт сен 24, 2021 2:21 pm

сорри, умываю руки, вообще не понял зачем вы задавали вопрос
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

Re: История phistory + phistory_queue

Сообщение xor » Сб сен 25, 2021 1:41 pm

alemoke писал(а):
Пт сен 24, 2021 10:29 am
...
Перевел phistory с MyISAM в InnoDB. Ждал что select и графики которые строятся на основе phistory будут отрисовываться медленнее. Но нет, наоборот стало гораздо быстрее. После этого слил содержание phistory в другую таблицу. Оптимизатор настроил на 3 месяца. Пока, сутки все хорошо.
интересует опыт использования инно дб для истории - понаблюдайте, не будут теряться данные при частой записи?
Ответить