[DASH] Количество запросов в БД

Всё, что не подходит под вышеперечисленные разделы

Модератор: immortal

Logrus
Сообщения: 2077
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 456 раз

Re: [DASH] Количество запросов в БД

Сообщение Logrus » Вт май 18, 2021 3:32 am

fandaymon писал(а):
Пн май 17, 2021 9:22 pm
Не знаю - зачем так заморачиваться со всеми этими запросами... Надо понимать, что запрос запросу рознь. Запрос на чтение к таблицу в памяти - это вообще ерунда, просто запрос на чтение - ну так, несколько сотен - сервер и не заметит. Запись в таблицу - это да, это нагрузка по серьёзней, особенно если таблица находится на диске, но в принципе и тут в последнее время есть серьезные подвижки - оптимизация статусов ПУ, подключение редиса, оптимизация модулей на запись, только если значение поменялось, и т.д. Резюме такое - если не делать каких-то косяков, которые чрезмерно грузят систему, то даже с избыточным функционалом ПУ всё работает нормально (на 4ой малинке)
ну вот у карла маркса на скринах оверхед с вызовом методов (логик экшен и родительские если пустые) - это только про пользовательскую сторону
в самом ядре тоже есть чего (к примеру терминалы посмотри сколько раз в сек апдейт пишут) и т.д. и тп

если все это причесывать то всего 18 обращений к бд в сек реальны
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: [DASH] Количество запросов в БД

Сообщение fandaymon » Вт май 18, 2021 10:58 am

Logrus писал(а):
Вт май 18, 2021 3:32 am
если все это причесывать то всего 18 обращений к бд в сек реальны
Я понимаю - но это оптимизация ради оптимизации, никакой реальной пользы от этого нет. Ёжу понятно, что если убрать из МДМ всё что сделано для удобства, то количество обращений к базе будет меньше, но зачем?
Logrus
Сообщения: 2077
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 456 раз

Re: [DASH] Количество запросов в БД

Сообщение Logrus » Вт май 18, 2021 11:53 am

fandaymon писал(а):
Вт май 18, 2021 10:58 am
Logrus писал(а):
Вт май 18, 2021 3:32 am
если все это причесывать то всего 18 обращений к бд в сек реальны
Я понимаю - но это оптимизация ради оптимизации, никакой реальной пользы от этого нет. Ёжу понятно, что если убрать из МДМ всё что сделано для удобства, то количество обращений к базе будет меньше, но зачем?
меньше ла, меньше тепловыделение цп, меньше потребление, где то и скорость выше
в примере про терминалы функционал не пострадал, хотя он не особо то и нужен, убран оверхед

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

а вопрошающим это да-а не нужно если их устраивает и разжевывать все им никто не будет
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Аватара пользователя
Карл Маркс
Сообщения: 70
Зарегистрирован: Ср апр 24, 2019 5:10 pm
Благодарил (а): 50 раз
Поблагодарили: 3 раза

Re: [DASH] Количество запросов в БД

Сообщение Карл Маркс » Вт май 18, 2021 1:27 pm

Logrus писал(а):
Вт май 18, 2021 3:32 am
ну вот у карла маркса на скринах оверхед с вызовом методов (логик экшен и родительские если пустые) - это только про пользовательскую сторону
в самом ядре тоже есть чего (к примеру терминалы посмотри сколько раз в сек апдейт пишут) и т.д. и тп

если все это причесывать то всего 18 обращений к бд в сек реальны
Блин, еслиб ещё понять, про что всё это. 2 раза пробежалмя по скринам, ничего похожего на "оверхед" не нашёл. Может сленг у вас, гуров, особый. У меня, например, после неких манипуляций, ThisComputer.CPU_usage дошёл до почти 300%, в Netdata почти 100. И температура поднималась градусов на 5-7. Я не мог ничего и настроить, пока в роутере инет еэспешкам не вырубал. Так что, у меня мера вынужденная. И ещё, как я делал управление, сперва чисто ручное, как смог. Потом, поверх этого, через кнопки или реле настроил голосовое управление. Потом появилась мини яндекс колонка. Через новые релюшки (всё это программное, разумеется) настроил это управление. Какая может быть тут оптимизания? И ещё, я когда то давно проходил мимо какого то программирвания, так там была болезнь с переполнением памяти, новые переменные создавались, а старые не удалялись. По этому я понимая, что это не оптимально, в некоторых местах через gg, одну переменную мог вызывать и по 4 раза за выражение.
Logrus писал(а):
Вт май 18, 2021 11:53 am
меньше ла, меньше тепловыделение цп, меньше потребление, где то и скорость выше
в примере про терминалы функционал не пострадал, хотя он не особо то и нужен, убран оверхед

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

а вопрошающим это да-а не нужно если их устраивает и разжевывать все им никто не будет
Жалко, что никто не разжовывает. Все уроки в сети, да и в базе знаний, учат делать не оптимально. А вот чтоб в основном коде копаться, хорошие знания нужны. Я, к примеру, каждое утро удаляю DarknessMode, EconomMode, GuestsMode, NightMode, NobodyHomeMode, SecurityArmedMode, из-за ненужности мне, а когда просыпаюсь, они обратно появляются. Про терминалы я и не встречал ещё настроек, вроде. Они сами появились, я их и не создавал, и не юзаю, не умею :)
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 815 раз

Re: [DASH] Количество запросов в БД

Сообщение tarasfrompir » Вт май 18, 2021 4:25 pm

Карл Маркс писал(а):
Вс май 16, 2021 5:19 pm
Так я Датчики ПУ удалил, свои, как смог, сделал. Не знаю, правильно, или нет, родные классы поменял на свои, правда обработчики с родных скопировал. В веб переменные прописал прямые ссылки, какие нашёл, а переменные привязал к своим объектам. Ещё не всё настроил, а уже 222 запроса. Может опытный взгляд что и увидит, для меня мало чем от китайских иероглифов отличаются. В основном ThisComputer фигурирует. В первой таблице много свойств с "Run" на конце. Они вообще никак не регулируется, вроде.
СпойлерПоказать
1.JPG
СпойлерПоказать
2.JPG
СпойлерПоказать
Таймеры.JPG
СпойлерПоказать
Логи.JPG
СпойлерПоказать
Методы.JPG
Тут и не знаешь, просто, куда смотреть надо.
UPD: Если датчиков не видно, на другой сцене, они всё равно так же работают?
Смотри чего у тебя секюрити рулес - в бд много запросов... Очень много... Это где-то ограничение доступа настроено ... вот и проверь где ты его настраивал...
Потом посмотри в логе обычном нету ли у тебя крослинков - так и пишет Croslink - ну и чтото еще
Ато очень на это похоже
За это сообщение автора tarasfrompir поблагодарил:
Карл Маркс (Вт май 18, 2021 4:32 pm)
Рейтинг: 1.16%
Спасибо нам ПОМОЖЕТ..!
Аватара пользователя
Карл Маркс
Сообщения: 70
Зарегистрирован: Ср апр 24, 2019 5:10 pm
Благодарил (а): 50 раз
Поблагодарили: 3 раза

Re: [DASH] Количество запросов в БД

Сообщение Карл Маркс » Вт май 18, 2021 5:45 pm

tarasfrompir писал(а):
Вт май 18, 2021 4:25 pm
Смотри чего у тебя секюрити рулес - в бд много запросов... Очень много... Это где-то ограничение доступа настроено ... вот и проверь где ты его настраивал...
Потом посмотри в логе обычном нету ли у тебя крослинков - так и пишет Croslink - ну и чтото еще
Ато очень на это похоже
Блин, я в этом коде и слона не найду. Как можно узнать, какую строку он хочет поиметь?
СпойлерПоказать
Ошибка.jpg
Ошибка.jpg (129.9 КБ) 3086 просмотров
Там что, секретные строчки есть? Я "Security checkState" сократил немного, чуть выше написал, в "OperationalModes" все объекты переименовал, удалять не рискнул. Но они утром заново появляются. А зачем этот секюрити вообще нужен? От чего и чего он защищает? Систему только грузит.
СпойлерПоказать

Код: Выделить всё

/*$details=array();
$red_state=0;
$yellow_state=0;

if ($red_state) {
 $state='red';
 $state_title=LANG_GENERAL_RED; 
} elseif ($yellow_state) {
 $state='yellow';
 $state_title=LANG_GENERAL_YELLOW;  
} else {
 $state='green';
 $state_title=LANG_GENERAL_GREEN;   
}

$new_details=implode(". ",$details);
if ($this->getProperty("stateDetails")!=$new_details) {
 $this->setProperty('stateDetails',$new_details);
}
*/
 $state_title=LANG_GENERAL_GREEN;   
 $state='green';
 $this->setProperty('stateColor',$state);
 $this->setProperty('stateTitle',$state_title);

/*
if ($this->getProperty('stateColor')!=$state) {
 $this->setProperty('stateColor',$state);
 $this->setProperty('stateTitle',$state_title);
 if ($state!='green') {
  sayReply(LANG_GENERAL_SECURITY_STATE." ".LANG_GENERAL_CHANGED_TO." ".$state_title.".");
  sayReply(implode(". ",$details));
 } else {
  sayReply(LANG_GENERAL_SECURITY_STATE." ".LANG_GENERAL_RESTORED_TO." ".$state_title);
 }
 $this->callMethod('stateChanged');
}*/
UPD: Вернул "checkState" к норме, пока "долбёжки" секюрити рулес нет, посмотрим, совсем ли.
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: [DASH] Количество запросов в БД

Сообщение nick7zmail » Ср май 19, 2021 7:22 am


Карл Маркс писал(а):
tarasfrompir писал(а):
Вт май 18, 2021 4:25 pm
Смотри чего у тебя секюрити рулес - в бд много запросов... Очень много... Это где-то ограничение доступа настроено ... вот и проверь где ты его настраивал...
Потом посмотри в логе обычном нету ли у тебя крослинков - так и пишет Croslink - ну и чтото еще
Ато очень на это похоже
Блин, я в этом коде и слона не найду. Как можно узнать, какую строку он хочет поиметь?
СпойлерПоказать
Ошибка.jpg
Там что, секретные строчки есть? Я "Security checkState" сократил немного, чуть выше написал, в "OperationalModes" все объекты переименовал, удалять не рискнул. Но они утром заново появляются. А зачем этот секюрити вообще нужен? От чего и чего он защищает? Систему только грузит.
СпойлерПоказать

Код: Выделить всё

/*$details=array();
$red_state=0;
$yellow_state=0;

if ($red_state) {
 $state='red';
 $state_title=LANG_GENERAL_RED; 
} elseif ($yellow_state) {
 $state='yellow';
 $state_title=LANG_GENERAL_YELLOW;  
} else {
 $state='green';
 $state_title=LANG_GENERAL_GREEN;   
}

$new_details=implode(". ",$details);
if ($this->getProperty("stateDetails")!=$new_details) {
 $this->setProperty('stateDetails',$new_details);
}
*/
 $state_title=LANG_GENERAL_GREEN;   
 $state='green';
 $this->setProperty('stateColor',$state);
 $this->setProperty('stateTitle',$state_title);

/*
if ($this->getProperty('stateColor')!=$state) {
 $this->setProperty('stateColor',$state);
 $this->setProperty('stateTitle',$state_title);
 if ($state!='green') {
  sayReply(LANG_GENERAL_SECURITY_STATE." ".LANG_GENERAL_CHANGED_TO." ".$state_title.".");
  sayReply(implode(". ",$details));
 } else {
  sayReply(LANG_GENERAL_SECURITY_STATE." ".LANG_GENERAL_RESTORED_TO." ".$state_title);
 }
 $this->callMethod('stateChanged');
}*/
UPD: Вернул "checkState" к норме, пока "долбёжки" секюрити рулес нет, посмотрим, совсем ли.
OperationalModes это системный класс...и как минимум там есть 3 захардкоженных объекта которые нельзя переименовывать - Security, System, Communication.

System отвечает, как правило, за проверку работоспособности системных циклов

Communication - за проверку связи (пинги устройств, наличие интернета, связи с облачными сервисами)

Security - "за безопасность дома" - очень сильное заявление, по дефолту там по-моему вообще ничего нет...но люди, как правило, включают туда проверку контуров охраны и т.п. например если охрана включена, и появилось движение там где не должно, или открылась дверь - обрабатывает всё это дело именно этот цикл.

И т.к. самодиагностика системы, а уж тем более отслеживание контуров охраны - довольно серьёзные задачи - эти циклы+объекты сделаны максимально неубиваемый и приоритетными. Переименуете - создадутся новые, удалите - создадутся новые. Допускается лишь менять коды методов. Если не хотите чтобы эти объекты что то проверяли - максимум что вы можете - закомментировать код в checkState и отключить запуск родительского метода (ну или в родительском тоже всё закомментить)

PS: пустой метод вряд ли может "грузить" систему.

Отправлено с моего Xperia XZ1 Compact через Tapatalk

За это сообщение автора nick7zmail поблагодарил:
Карл Маркс (Ср май 19, 2021 8:39 am)
Рейтинг: 1.16%
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Logrus
Сообщения: 2077
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 456 раз

Re: [DASH] Количество запросов в БД

Сообщение Logrus » Ср май 19, 2021 11:57 am

nick7zmail писал(а):
Ср май 19, 2021 7:22 am

OperationalModes это системный класс...и как минимум там есть 3 захардкоженных объекта которые нельзя переименовывать - Security, System, Communication.
я правил же, но они и ранее не были захардкорены
https://github.com/sergejey/majordomo/b ... es.php#L21

а это да-а захардкорено в пу
https://github.com/sergejey/majordomo/b ... nc.php#L35
Снимок.PNG
Снимок.PNG (20.3 КБ) 3012 просмотров
ну и к теме кол-ва запросов, здесь их много, да, но в дефолтном коде они легкие и в основном селекты
а если переделать то функционал даже больше при меньшем количестве запросов

и да-а, к траблам тс это навряд ли имеет отношение
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: [DASH] Количество запросов в БД

Сообщение nick7zmail » Пт май 28, 2021 8:26 pm

Logrus писал(а):
Ср май 19, 2021 11:57 am
я правил же, но они и ранее не были захардкорены
https://github.com/sergejey/majordomo/b ... es.php#L21
отмотайте год на 2012...там эта же строчка есть =)
Пролистал цикл - действительно, захардкожен класс, а не объекты. Но захардкоженные объекты встречаются в PHP коде в БД...возможно по-этому и создаются.
Logrus писал(а):
Ср май 19, 2021 11:57 am
а это да-а захардкорено в пу
https://github.com/sergejey/majordomo/b ... nc.php#L35

Снимок.PNG
ну и к теме кол-ва запросов, здесь их много, да, но в дефолтном коде они легкие и в основном селекты
а если переделать то функционал даже больше при меньшем количестве запросов

и да-а, к траблам тс это навряд ли имеет отношение
Эт не совсем SystemStates, это уже режимы...они да, точно захардкожены, т.к. в ПУ на них завязаны действия формата выключать при переходе в эко-режим, включать ночью и т.п.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
amelnyk
Сообщения: 78
Зарегистрирован: Вт ноя 22, 2016 12:17 am
Благодарил (а): 13 раз
Поблагодарили: 2 раза

Re: [DASH] Количество запросов в БД

Сообщение amelnyk » Ср июн 02, 2021 2:48 pm

Карл Маркс писал(а):
Вс май 16, 2021 5:19 pm
СпойлерПоказать
1.JPG
СпойлерПоказать
2.JPG
подскажите плз где найти эту страницу с запросами к бд, что на первых двух скринах?

Upd: охрана отмена, нашел. если кто будет искать, то это модуль SQLmeter
Последний раз редактировалось amelnyk Ср июн 02, 2021 3:12 pm, всего редактировалось 1 раз.
Ответить