Высокая загрузка ЦП из-за заданий cron - PullRequest
1 голос
/ 08 января 2020

Я прошу прощения за длинный вопрос, но я должен объяснить его.

Я делаю обнаружение точки изменения через python для почти 50 клиентов и для разных процессов.

  • Я получаю цифры минутного интервала c данные о притоке.
  • Я рассчитываю Z-Score и сохраняю это в mongoDB локально на машине на котором выполняется задание cron.
  • Я сравниваю Z-счет с историей c Z-счетом, а затем оповещаю систему.

Проблемы:

  1. Поскольку я делаю это для 50 клиентов, которые могут масштабироваться, скажем, до 500 или 5000, и каждый клиент будет иметь, скажем, 10 процессов, поэтому нецелесообразно иметь столько заданий cron.
  2. Увеличение Задания cron создают высокую нагрузку на процессор, и поскольку мои данные хранятся локально, и если я потеряю машину linux, тогда я потеряю все свои данные, находящиеся там, и не смогу сравнить их с историческими данными c.

Решения:

  1. Создайте кластерный сервер mongoDB, а не сохраняйте данные локально.
  2. Замените задания cron на многопоточность и многопоточность.

Предложения:

  1. Что может быть лучшим способом реализовать это, чтобы уменьшить нагрузку на процессор, учитывая, что он будет работать все время в al oop?
  2. После исправления вышеизложенного, что может быть лучшим способом уменьшения числа ложных срабатываний в оповещениях?

Имейте в виду:

  • Его данные временного ряда.
  • Каждая метка времени имеет 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

Возможно, что в этих числах есть корреляция.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...