Производительность системы

Проблемы/вопросы, связанные с запуском под различными платформами и конфигурациями.

Модератор: immortal

Ответить
Adventure
Сообщения: 1
Зарегистрирован: Вс ноя 17, 2013 3:36 pm

Производительность системы

Сообщение Adventure »

Сергей, добрый день!
Спасибо за очень интересную систему! Очень легко устанавливается, настраивается и расширяется!
Единственное вызывает удивление, что по любому вопросу система делает запрос в mysql.
В результате только что установленная система делает порядка 400 запросов в минуту к базе mysql!

Я сначала думал, что проблема в mysql, искал тяжелые запросы, которые обрабатывают большие массивы данных. Но таких не нашлось. Оказалось, что есть очень много мелких запросов, каждый из которых возвращает всего несколько строк.

Дело в том, что каждый файл cycle_* заново подключается к базе, получает оттуда все объекты с которыми нужно работать, обрабатывает их, а потом отключается от базы. И так по много раз в минуту.

Например, есть несколько датчиков, значение которых нужно читать по snmp. В настройках установлено, что нужно обновлять значение раз в 2 минуты. Зачем свойства этих датчиков запрашивать в mysql по несколько раз в минуту с помощью cycle_snmp.php? Почему нельзя хранить это в памяти и обращаться в базу только когда это действительно необходимо?
Аналогично cycle_ping.php. Когда я добавил чуть более 10 устройств и хотел пинговать их раз в минуту, mysql стал грузить сервер на 100%. В результате на внешние запросы сервер отвечать уже не мог. Почему не хранить эти 10 объектов прямо в памяти? Это же копеечные затраты памяти, зато все будет работать существенно быстрее и нагрузка на сервер (кстати и потребление электроэнергии сервером) будет значительно ниже.
Ivan
Сообщения: 1474
Зарегистрирован: Сб окт 12, 2013 11:03 pm

Re: Производительность системы

Сообщение Ivan »

Присоединяюсь. Мой сервак в пасивном состоянии жрёт 30% процессора - правда это Raspbery Pi. Но при этом очень резво работает OWFS и Z-Wave движки
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Контактная информация:

Re: Производительность системы

Сообщение sergejey »

Добрый день!

Спасибо за рекомендации -- оптимизация это хорошо и местами её не хватает. Было бы здорово более конкретные примеры по коду, потому что я не могу подтвердить некоторые вещи. Например, cycle_ не делает повторного подключения к базе данных -- оно осуществляется по запуску скрипта и потом идут только запросы по установленному соединению. Далее, скрипты выбирают объекты, но запросы на обновление свойств идут по расписанию, указанному в настройках объектов. Вполне допускаю, что есть какие-то логические ошибки в коде, поэтому попрошу о помощи в виде детальных "доказательств" :)

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Ответить