Процесс mysqld.exe ест до 50% ЦП

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

EvgenyG
Сообщения: 217
Зарегистрирован: Вт июл 21, 2015 4:59 pm
Откуда: Москва
Благодарил (а): 56 раз
Поблагодарили: 1 раз

Re: Процесс mysqld.exe ест до 50% ЦП

Сообщение EvgenyG » Пн май 22, 2017 3:33 pm

Отключил задачи которые выполнялись каждые 5 минут и geturl вообще не отправлялся
Ситуация с загрузкой ЦП не изменилась!
MDM Raspberry Pi 3b, esp32, ModBUS, esp8266, NooLite(MTRF-64-USB, SU-1-***, SLF-1-300, PM112, радиопульты PU)
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Процесс mysqld.exe ест до 50% ЦП

Сообщение sergejey » Вт сен 05, 2017 12:36 pm

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

Процедура такая:
1. Делаем резервную копию базы данных (как минимум)
2. Останавливаем систему (циклы)
3. В config.php добавляем строчку

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

Define('SEPARATE_HISTORY_STORAGE',1); 
4. Запускаем систему

В процессе запуска будет обработана вся таблица phistory и данные будут раскиданы в новые таблицы -- процесс занимает некоторое время и крайне желательно его не прерывать, чтобы не потерять ничего.

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

В общем, попробуйте, но не забывайте про резервную копию, на тот случай, если что-то пойдёт не так.
За это сообщение автора sergejey поблагодарили (всего 3):
astotskiy (Вт сен 05, 2017 5:24 pm) • ILGAS (Ср сен 06, 2017 12:06 am) • EvgenyG (Ср сен 06, 2017 12:01 pm)
Рейтинг: 3.49%

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
EvgenyG
Сообщения: 217
Зарегистрирован: Вт июл 21, 2015 4:59 pm
Откуда: Москва
Благодарил (а): 56 раз
Поблагодарили: 1 раз

Re: Процесс mysqld.exe ест до 50% ЦП

Сообщение EvgenyG » Ср сен 06, 2017 12:03 pm

sergejey писал(а):В альфа-ветке появился ещё один вариант оптимизации -- разделение записи истории по разным таблицам базы данных. Для систем с большим объёмом данных это должно снизить загрузку процессора, НО при этом в базе данных будет создано большое количество новых таблиц (по одной на каждое свойство с историей). Последнее скорее не удобно, чем плохо, но если больше ничего не помогает, то рекомендую попробовать.

Процедура такая:
1. Делаем резервную копию базы данных (как минимум)
2. Останавливаем систему (циклы)
3. В config.php добавляем строчку

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

Define('SEPARATE_HISTORY_STORAGE',1);
4. Запускаем систему

В процессе запуска будет обработана вся таблица phistory и данные будут раскиданы в новые таблицы -- процесс занимает некоторое время и крайне желательно его не прерывать, чтобы не потерять ничего.

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

В общем, попробуйте, но не забывайте про резервную копию, на тот случай, если что-то пойдёт не так.
Спасибо, попробую
Эта строка должна потом остаться?

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

Define('SEPARATE_HISTORY_STORAGE',1);
Не совсем понял, про сложности работы с разделёнными таблицами
Можно пример
MDM Raspberry Pi 3b, esp32, ModBUS, esp8266, NooLite(MTRF-64-USB, SU-1-***, SLF-1-300, PM112, радиопульты PU)
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Процесс mysqld.exe ест до 50% ЦП

Сообщение sergejey » Ср сен 06, 2017 3:08 pm

EvgenyG писал(а):Эта строка должна потом остаться?

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

Define('SEPARATE_HISTORY_STORAGE',1); 
Не совсем понял, про сложности работы с разделёнными таблицами
Можно пример
Да, строка должна остаться.
Сложность только в том, что если вы заходите вручную в базу данных, то там очень много таблиц. Для системы никакой сложности нет.
За это сообщение автора sergejey поблагодарил:
EvgenyG (Ср сен 06, 2017 3:27 pm)
Рейтинг: 1.16%

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
EvgenyG
Сообщения: 217
Зарегистрирован: Вт июл 21, 2015 4:59 pm
Откуда: Москва
Благодарил (а): 56 раз
Поблагодарили: 1 раз

Re: Процесс mysqld.exe ест до 50% ЦП

Сообщение EvgenyG » Чт сен 07, 2017 9:07 pm

sergejey писал(а):В альфа-ветке появился ещё один вариант оптимизации -- разделение записи истории по разным таблицам базы данных. Для систем с большим объёмом данных это должно снизить загрузку процессора, НО при этом в базе данных будет создано большое количество новых таблиц (по одной на каждое свойство с историей). Последнее скорее не удобно, чем плохо, но если больше ничего не помогает, то рекомендую попробовать.

Процедура такая:
1. Делаем резервную копию базы данных (как минимум)
2. Останавливаем систему (циклы)
3. В config.php добавляем строчку

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

Define('SEPARATE_HISTORY_STORAGE',1);
4. Запускаем систему

В процессе запуска будет обработана вся таблица phistory и данные будут раскиданы в новые таблицы -- процесс занимает некоторое время и крайне желательно его не прерывать, чтобы не потерять ничего.

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

В общем, попробуйте, но не забывайте про резервную копию, на тот случай, если что-то пойдёт не так.
Сделал
Как понять, что базы разделились?
MDM Raspberry Pi 3b, esp32, ModBUS, esp8266, NooLite(MTRF-64-USB, SU-1-***, SLF-1-300, PM112, радиопульты PU)
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Процесс mysqld.exe ест до 50% ЦП

Сообщение sergejey » Чт сен 07, 2017 9:49 pm

EvgenyG писал(а):Сделал
Как понять, что базы разделились?
Зайти в базу данных db_terminal через phpmyadmin и там будет очень много таблиц.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
ILGAS
Сообщения: 366
Зарегистрирован: Пт июл 26, 2013 4:11 pm
Благодарил (а): 71 раз
Поблагодарили: 18 раз

Re: Процесс mysqld.exe ест до 50% ЦП

Сообщение ILGAS » Чт сен 07, 2017 10:06 pm

sergejey писал(а):
EvgenyG писал(а):Сделал
Как понять, что базы разделились?
Зайти в базу данных db_terminal через phpmyadmin и там будет очень много таблиц.
я попробовал, но теперь БД не хранит историю.
ILGAS
Сообщения: 366
Зарегистрирован: Пт июл 26, 2013 4:11 pm
Благодарил (а): 71 раз
Поблагодарили: 18 раз

Re: Процесс mysqld.exe ест до 50% ЦП

Сообщение ILGAS » Чт сен 07, 2017 10:18 pm

обманул, перестали работать графики. (charts)
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Процесс mysqld.exe ест до 50% ЦП

Сообщение sergejey » Пт сен 08, 2017 11:16 am

ILGAS писал(а):обманул, перестали работать графики. (charts)
Сорри, забыл загрузить обновление модуля Charts. Обновите его и сейчас должно быть ок.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
ILGAS
Сообщения: 366
Зарегистрирован: Пт июл 26, 2013 4:11 pm
Благодарил (а): 71 раз
Поблагодарили: 18 раз

Re: Процесс mysqld.exe ест до 50% ЦП

Сообщение ILGAS » Пт сен 08, 2017 11:51 am

sergejey писал(а):
ILGAS писал(а):обманул, перестали работать графики. (charts)
Сорри, забыл загрузить обновление модуля Charts. Обновите его и сейчас должно быть ок.
sergejey, все получилось, спасибо, возможно обновление или разделение таблиц.

ps не в тему, Сергей, у меня после каждой установки (обновление системы и даже обновления из маркета) включается "AUTO-RECOVERY" у цикла "cycle_schedapp", после этого в "Debug" сыпятся ошибка

11:46:52 0.88009900 AUTO-RECOVERY: ./scripts/cycle_schedapp.php
11:46:51 0.86548000 Closing thread: c:/_majordomo/server/php/php.exe -q ./scripts/cycle_schedapp.php --params "a:0:{}">>C:\_majordomo\htdocs/debmes/log_2017-09-08-cycle_schedapp.php.txt
11:46:50 0.80839100 AUTO-RECOVERY: ./scripts/cycle_schedapp.php
11:46:49 0.78046200 Closing thread: c:/_majordomo/server/php/php.exe -q ./scripts/cycle_schedapp.php --params "a:0:{}">>C:\_majordomo\htdocs/debmes/log_2017-09-08-cycle_schedapp.php.txt
11:46:48 0.76156100 AUTO-RECOVERY: ./scripts/cycle_schedapp.php
11:46:48 0.31799200
Ответить