Я прошу прощения за длинный вопрос, но я должен объяснить его.
Я делаю обнаружение точки изменения через python для почти 50 клиентов и для разных процессов.
- Я получаю цифры минутного интервала c данные о притоке.
- Я рассчитываю Z-Score и сохраняю это в mongoDB локально на машине на котором выполняется задание cron.
- Я сравниваю Z-счет с историей c Z-счетом, а затем оповещаю систему.
Проблемы:
- Поскольку я делаю это для 50 клиентов, которые могут масштабироваться, скажем, до 500 или 5000, и каждый клиент будет иметь, скажем, 10 процессов, поэтому нецелесообразно иметь столько заданий cron.
- Увеличение Задания cron создают высокую нагрузку на процессор, и поскольку мои данные хранятся локально, и если я потеряю машину linux, тогда я потеряю все свои данные, находящиеся там, и не смогу сравнить их с историческими данными c.
Решения:
- Создайте кластерный сервер mongoDB, а не сохраняйте данные локально.
- Замените задания cron на многопоточность и многопоточность.
Предложения:
- Что может быть лучшим способом реализовать это, чтобы уменьшить нагрузку на процессор, учитывая, что он будет работать все время в al oop?
- После исправления вышеизложенного, что может быть лучшим способом уменьшения числа ложных срабатываний в оповещениях?
Имейте в виду:
- Его данные временного ряда.
- Каждая метка времени имеет 5 или 6 переменных, и на данный момент я делаю одну и ту же операцию для каждой переменной в отдельности.
Time var1 var2 var3.................varN
09:00 PM 10,000 5,000 150,000..............10
09:01 PM 10,500 5,050 160,000..............25
Возможно, что в этих числах есть корреляция.
Спасибо!