Хотелось бы поднять тему скорости работы Majordomo (а точнее скорости реакции и обработки событий) в зависимости от железа, на котором он запущен.
На данный момент имею проблему с непозволительно долгой реакицей на события в сценариях. Попробую объяснить:
1) Есть датчк открытия двери Xiaomi, написан простенький скрипт, который включает свет (через выключатель Xiaomi) при открытии двери
2) Есть Zigbee выключатель Xiaomi, настроен через сценарий на включение света в комнате (через другой проводной выключатель Xiaomi).
Первая конфигурация:
Cubieboard3 (cubietruck)
ARM® Cortex™-A7 Dual-Core, ARM® Mali400 MP2
2GB DDR3
Подключен к сети по проводу.
1) Время с момента открытия двери (сработки датчика) до момента включения света колеблется от 2 до 6 секунд. Обычно 2 секунды, но иногда по каким-то причина может быть и 5-6 секунд.
2) Время между нажатием клавиши беспроводного выключателя и включением света примерно 2 секунды.
Пробовал оптимизировать mysql (параметры с кэшем), даже переносил файловую систему с microSD на SATA диск - никаких улучшений.
При этом процессор загружен в среднем на 10-15% (максимум что видел - 20%), оперативной памяти свободной много, своп не используется.
Вторая конфигурация:
RASPBERRY PI 3 MODEL B
Накатил образ "Базовый образ MajorDoMo для Raspberry" от ув. SergeJey, обновился из мастера.
1) время реакции такое же как и в случае использования cubietruck
2) время реакции такое же как и в случае использования cubietruck
Третья конфигурация:
Баребон Gigabyte GB-BXBT-2807
Intel® Celeron N2807
2GB DDR3
Подставил Majordomo под Debian 9.5
Каких-бы то отличий во времени реакции по сравнению с предыдущими вариантами не заметил, разве что загрузка процессора всего 5-10%, не выше.
Четвертая конфигурация:
Домашний PC
Core i7-2700K
8GB DDR3
Majordomo запущен на виртуальной машине vmware под тем же Debian 9.5 что и в третьей конфигурации.
1) Время с момента открытия двери (сработки датчика) до момента включения света не более 1 секунды!
2) Время между нажатием клавиши беспроводного выключателя и включением света менее 1 секунды!
Вот и задался вопросом. как так-то? Почему на более слабых железках (и одноплатниках) при мизерной загрузке CPU такое большое время реакции? Куда копать? Как задебажить?
Как у вас обстоит дело с временем реакции от датчиков?
P.S. Это мой первый пост на форуме, не судите пожалуйста строго
![Smile :)](./images/smilies/icon_e_smile.gif)