Transient свойства объектов
Модератор: immortal
-
- Сообщения: 143
- Зарегистрирован: Чт фев 13, 2020 6:39 pm
- Благодарил (а): 23 раза
- Поблагодарили: 35 раз
Re: Transient свойства объектов
Можно посмотреть на проблему с другой стороны. А есть ли необходимость вычисления среднего за период? Для примера. Контроллер солнечной панели. С него можно снимать данные с любой периодичностью, начиная с 10 сек. Передаются ток, напряжение, мощность, но нет накопленной энергии. Вычисляется на сервере. Затестил периодичность 10 сек и 1 минута. Итоговая разница за сутки менее 1%. Так стоит ли грузить сервер доп.вычислениями, когда можно брать выборки с большей периодичностью? Ну если, конечно, это не научные исследования.
-
- Сообщения: 17
- Зарегистрирован: Вт окт 23, 2018 11:17 pm
- Благодарил (а): 4 раза
- Поблагодарили: 3 раза
Re: Transient свойства объектов
Фуххх. Пришлось повозиться с отладкой
Подлянка обнаружилась вот здесь:
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Гб имеет смысл отключить его совсем?
Подлянка обнаружилась вот здесь:
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Гб имеет смысл отключить его совсем?
-
- Сообщения: 17
- Зарегистрирован: Вт окт 23, 2018 11:17 pm
- Благодарил (а): 4 раза
- Поблагодарили: 3 раза
Re: Transient свойства объектов
В моём случае это контроллер который шлёт не только солнечные панели, но и автомобиль, стиралку, сушку, и в том числе текущее потребление всем домохозяйством. Если панели и автомобиль в целом достаточно стабильны в течении минуты, то домохозяйство может удивить. Например в прогретой духовке PID-регуляция температуры генерирует пики потребления от 50 Вт до 3000 Вт, причем дискретные и достаточно периодичные: 40сек 50Вт, потом 10сек 3000 Вт.AK1 писал(а): ↑Сб дек 30, 2023 7:20 amМожно посмотреть на проблему с другой стороны. А есть ли необходимость вычисления среднего за период? Для примера. Контроллер солнечной панели. С него можно снимать данные с любой периодичностью, начиная с 10 сек. Передаются ток, напряжение, мощность, но нет накопленной энергии. Вычисляется на сервере. Затестил периодичность 10 сек и 1 минута. Итоговая разница за сутки менее 1%. Так стоит ли грузить сервер доп.вычислениями, когда можно брать выборки с большей периодичностью? Ну если, конечно, это не научные исследования.
- xor
- Сообщения: 2040
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 286 раз
- Поблагодарили: 629 раз
Re: Transient свойства объектов
там и в историю недавно писалось не более 255 символов при размере свойства 10к символов) у себя давно кэш сделал 2к поле. про редис - в качестве кэша не использую. вообще, всю базу держу на рам-диске. и тип мемори для таблиц уже не актуален)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Гб имеет смысл отключить его совсем?
win10 connect https://connect.smartliving.ru/profile/303
-
- Сообщения: 2086
- Зарегистрирован: Пт апр 07, 2017 12:20 pm
- Благодарил (а): 313 раз
- Поблагодарили: 458 раз
Re: Transient свойства объектов
наверное никто не ответит на эти вопросы, у себя пришел к мнению что редис однозначно медленнее т.к. там медленное подключение к нему каждый раз, а сами кэш функции и бд существенно переработал, но тут уже решать каждому что ему и как надо, имхо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Гб имеет смысл отключить его совсем?
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
-
- Сообщения: 17
- Зарегистрирован: Вт окт 23, 2018 11:17 pm
- Благодарил (а): 4 раза
- Поблагодарили: 3 раза
Re: Transient свойства объектов
Штош, сделал замеры
В моём случае действительно редис не дает выигрыша. Однако и падение производительности на уровне погрешности. Менее 2% при миллионе операций чтения/записи.
Так что отключил к чертям - зачем плодить ненужные сущности
- Рейтинг: 1.16%