Добрый день! Помогите решить проблему.
У меня установлена система Majordomo на ПК с процессором Atom425. Операционная система Ubuntu 16.04.6 LTS. После установки системы загрузка процессора не превышает 35-40% в пике. Через несколько дней загрузка процессора становится 90-100%. Процессор грузит процесс mysql.
Если отключить все устройства ESP8266 (wifiot) 3 шт, то загрузка процессора не превышает 30%.
Помогите пожалуйста кто нибудь!
mysql грузит процессор
Модератор: immortal
-
- Сообщения: 14
- Зарегистрирован: Вс мар 31, 2019 7:21 pm
- Благодарил (а): 0
- Поблагодарили: 0
-
- Сообщения: 684
- Зарегистрирован: Ср май 03, 2017 7:41 pm
- Благодарил (а): 113 раз
- Поблагодарили: 107 раз
Re: mysql грузит процессор
Не могут ESP слишком часто передавать данные ? И в "Устройствах онлайн" какой интервал проверки ? Модуль "Optimizer" не пробовал если история свойств включена ? У меня когда слишком много данных в истории, то тоже подтормаживать начинает.
-
- Сообщения: 14
- Зарегистрирован: Вс мар 31, 2019 7:21 pm
- Благодарил (а): 0
- Поблагодарили: 0
Re: mysql грузит процессор
ESP отсылали данные каждые 10 сек.
Установил 30сек. загрузка снизилась.
Если вообще отключить передачу от ESP то загрузка 5%
Установил 30сек. загрузка снизилась.
Если вообще отключить передачу от ESP то загрузка 5%
-
- Сообщения: 2
- Зарегистрирован: Ср июл 04, 2018 11:35 am
- Благодарил (а): 0
- Поблагодарили: 3 раза
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']);" - проблема решилась.
Комп грется перестал.
Считаю что код написан неоптимально. ЗАчистку надо проводить максимум раз в сутки по всем свойствам объектов системы а не после каждого обновления свойства.
- За это сообщение автора zukum поблагодарили (всего 3):
- xor (Чт апр 25, 2019 9:06 am) • viktor6 (Сб апр 27, 2019 10:04 pm) • Bolik.Stav (Сб июл 06, 2019 9:52 am)
- Рейтинг: 3.49%