Добрый день! Помогите решить проблему.
У меня установлена система Majordomo на ПК с процессором Atom425. Операционная система Ubuntu 16.04.6 LTS. После установки системы загрузка процессора не превышает 35-40% в пике. Через несколько дней загрузка процессора становится 90-100%. Процессор грузит процесс mysql.
Если отключить все устройства ESP8266 (wifiot) 3 шт, то загрузка процессора не превышает 30%.
Помогите пожалуйста кто нибудь!
mysql грузит процессор
Модератор: immortal
-
Aleksei.kor
- Сообщения: 14
- Зарегистрирован: Вс мар 31, 2019 7:21 pm
Re: mysql грузит процессор
Не могут ESP слишком часто передавать данные ? И в "Устройствах онлайн" какой интервал проверки ? Модуль "Optimizer" не пробовал если история свойств включена ? У меня когда слишком много данных в истории, то тоже подтормаживать начинает.
-
Aleksei.kor
- Сообщения: 14
- Зарегистрирован: Вс мар 31, 2019 7:21 pm
Re: mysql грузит процессор
ESP отсылали данные каждые 10 сек.
Установил 30сек. загрузка снизилась.
Если вообще отключить передачу от ESP то загрузка 5%
Установил 30сек. загрузка снизилась.
Если вообще отключить передачу от ESP то загрузка 5%
Re: mysql грузит процессор
У меня также была проблема - каждую минуту MySQL начинал грузить процессор, отчего безвентиляторный компьютер сильно грелся.
В результате анализа чем занят MySQL выяснил что он после каждой обработки сообщений от датчика(esp8266) пытается зачистить исторические данные старше - в моей случае 2000дней в таблице phistory. Т.к. таблица под несколько мильонов записей - эта операция сильно нагружала процессор. Закоментировал в cycle_main.php строки "//SQLExec("DELETE FROM $table_name WHERE VALUE_ID='" . $keep_rec['VALUE_ID'] . "' AND TO_DAYS(NOW())-TO_DAYS(ADDED)>" . (int)$keep_rec['KEEP_HISTORY']);" - проблема решилась.
Комп грется перестал.
Считаю что код написан неоптимально. ЗАчистку надо проводить максимум раз в сутки по всем свойствам объектов системы а не после каждого обновления свойства.
В результате анализа чем занят MySQL выяснил что он после каждой обработки сообщений от датчика(esp8266) пытается зачистить исторические данные старше - в моей случае 2000дней в таблице phistory. Т.к. таблица под несколько мильонов записей - эта операция сильно нагружала процессор. Закоментировал в cycle_main.php строки "//SQLExec("DELETE FROM $table_name WHERE VALUE_ID='" . $keep_rec['VALUE_ID'] . "' AND TO_DAYS(NOW())-TO_DAYS(ADDED)>" . (int)$keep_rec['KEEP_HISTORY']);" - проблема решилась.
Комп грется перестал.
Считаю что код написан неоптимально. ЗАчистку надо проводить максимум раз в сутки по всем свойствам объектов системы а не после каждого обновления свойства.