Страница 2 из 2

Re: Transient свойства объектов

Добавлено: Сб дек 30, 2023 7:20 am
AK1
Можно посмотреть на проблему с другой стороны. А есть ли необходимость вычисления среднего за период? Для примера. Контроллер солнечной панели. С него можно снимать данные с любой периодичностью, начиная с 10 сек. Передаются ток, напряжение, мощность, но нет накопленной энергии. Вычисляется на сервере. Затестил периодичность 10 сек и 1 минута. Итоговая разница за сутки менее 1%. Так стоит ли грузить сервер доп.вычислениями, когда можно брать выборки с большей периодичностью? Ну если, конечно, это не научные исследования.

Re: Transient свойства объектов

Добавлено: Сб дек 30, 2023 7:37 am
ai91
Фуххх. Пришлось повозиться с отладкой :-)
Подлянка обнаружилась вот здесь:
https://github.com/sergejey/majordomo/b ... ss.php#L99
Сделал array_shift при превышении 255 символов.

Конечно понимаю что причина в этом легаси:
https://github.com/sergejey/majordomo/b ... l.sql#L128

Но у меня redis. Ограничение бессмысленно.
Однако снимать ограничение только для редиса - нельзя, может аукнуться при деактивации редиса.
По-хорошему надо бы таблицу cached_values сделать varchar'ом (как cached_ws например).

И тут возникает новый вопрос, теперь уже по поводу redis'а.
Установил и активировал его без особого понимания как работает mdm, просто следовал какой-то инструкции, где особого объяснения не было. Я исходил из того что redis это гораздо быстрее чем обычная таблица mariadb. Однако теперь рассмотрел db_terminal и создание cached_values таблицы. Она создается с ENGINE=MEMORY. Собственно вопрос - а зачем нужен redis? Я вижу использование только в caching.class.php. Для систем с малым объемом памяти? Правильно я понимаю что на моём сервере с 8Гб имеет смысл отключить его совсем?

Re: Transient свойства объектов

Добавлено: Сб дек 30, 2023 7:49 am
ai91
AK1 писал(а):
Сб дек 30, 2023 7:20 am
Можно посмотреть на проблему с другой стороны. А есть ли необходимость вычисления среднего за период? Для примера. Контроллер солнечной панели. С него можно снимать данные с любой периодичностью, начиная с 10 сек. Передаются ток, напряжение, мощность, но нет накопленной энергии. Вычисляется на сервере. Затестил периодичность 10 сек и 1 минута. Итоговая разница за сутки менее 1%. Так стоит ли грузить сервер доп.вычислениями, когда можно брать выборки с большей периодичностью? Ну если, конечно, это не научные исследования.
В моём случае это контроллер который шлёт не только солнечные панели, но и автомобиль, стиралку, сушку, и в том числе текущее потребление всем домохозяйством. Если панели и автомобиль в целом достаточно стабильны в течении минуты, то домохозяйство может удивить. Например в прогретой духовке PID-регуляция температуры генерирует пики потребления от 50 Вт до 3000 Вт, причем дискретные и достаточно периодичные: 40сек 50Вт, потом 10сек 3000 Вт.

Re: Transient свойства объектов

Добавлено: Сб дек 30, 2023 2:38 pm
xor
ai91 писал(а):
Сб дек 30, 2023 7:37 am
Фуххх. Пришлось повозиться с отладкой :-)
Подлянка обнаружилась вот здесь:
https://github.com/sergejey/majordomo/b ... ss.php#L99
Сделал array_shift при превышении 255 символов.

Конечно понимаю что причина в этом легаси:
https://github.com/sergejey/majordomo/b ... l.sql#L128

Но у меня redis. Ограничение бессмысленно.
Однако снимать ограничение только для редиса - нельзя, может аукнуться при деактивации редиса.
По-хорошему надо бы таблицу cached_values сделать varchar'ом (как cached_ws например).

И тут возникает новый вопрос, теперь уже по поводу redis'а.
Установил и активировал его без особого понимания как работает mdm, просто следовал какой-то инструкции, где особого объяснения не было. Я исходил из того что redis это гораздо быстрее чем обычная таблица mariadb. Однако теперь рассмотрел db_terminal и создание cached_values таблицы. Она создается с ENGINE=MEMORY. Собственно вопрос - а зачем нужен redis? Я вижу использование только в caching.class.php. Для систем с малым объемом памяти? Правильно я понимаю что на моём сервере с 8Гб имеет смысл отключить его совсем?
там и в историю недавно писалось не более 255 символов при размере свойства 10к символов) у себя давно кэш сделал 2к поле. про редис - в качестве кэша не использую. вообще, всю базу держу на рам-диске. и тип мемори для таблиц уже не актуален)

Re: Transient свойства объектов

Добавлено: Сб дек 30, 2023 6:59 pm
Logrus
ai91 писал(а):
Сб дек 30, 2023 7:37 am
Фуххх. Пришлось повозиться с отладкой :-)
Подлянка обнаружилась вот здесь:
https://github.com/sergejey/majordomo/b ... ss.php#L99
Сделал array_shift при превышении 255 символов.

Конечно понимаю что причина в этом легаси:
https://github.com/sergejey/majordomo/b ... l.sql#L128

Но у меня redis. Ограничение бессмысленно.
Однако снимать ограничение только для редиса - нельзя, может аукнуться при деактивации редиса.
По-хорошему надо бы таблицу cached_values сделать varchar'ом (как cached_ws например).

И тут возникает новый вопрос, теперь уже по поводу redis'а.
Установил и активировал его без особого понимания как работает mdm, просто следовал какой-то инструкции, где особого объяснения не было. Я исходил из того что redis это гораздо быстрее чем обычная таблица mariadb. Однако теперь рассмотрел db_terminal и создание cached_values таблицы. Она создается с ENGINE=MEMORY. Собственно вопрос - а зачем нужен redis? Я вижу использование только в caching.class.php. Для систем с малым объемом памяти? Правильно я понимаю что на моём сервере с 8Гб имеет смысл отключить его совсем?
наверное никто не ответит на эти вопросы, у себя пришел к мнению что редис однозначно медленнее т.к. там медленное подключение к нему каждый раз, а сами кэш функции и бд существенно переработал, но тут уже решать каждому что ему и как надо, имхо

Re: Transient свойства объектов

Добавлено: Сб дек 30, 2023 11:59 pm
ai91
Logrus писал(а):
Сб дек 30, 2023 6:59 pm
наверное никто не ответит на эти вопросы, у себя пришел к мнению что редис однозначно медленнее т.к. там медленное подключение к нему каждый раз, а сами кэш функции и бд существенно переработал, но тут уже решать каждому что ему и как надо, имхо
Штош, сделал замеры :-)
В моём случае действительно редис не дает выигрыша. Однако и падение производительности на уровне погрешности. Менее 2% при миллионе операций чтения/записи.
Так что отключил к чертям - зачем плодить ненужные сущности :-)