Сколько рабочих мест cron слишком много?

9

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

У меня также есть пользовательское планирование задач (которое просто вызывает файл .php и передает информацию через GET, например: cronjob.php? Param1 = param ...). Они могут сложиться довольно быстро.

Они просто вызывают системные команды и запускают внешние программы (Nmap - одна из них). Они обычно тоже не занимают много времени.

Во всяком случае, кто-нибудь может сказать мне, грубо говоря, что это слишком много? Я знаю, это трудно сказать, так как это зависит от того, какое задание выполняется и как часто, но в какой момент программа crontab начинает «бороться»? У кого-нибудь есть идеи?

Спасибо.


источник
Сколько записей вы можете добавить до того, как файл станет настолько большим, что вам не хватит места на диске?
Джон Гарденье

Ответы:

6

Я бы не беспокоился о загрузке самой программы crontab (cron); это ваша общая нагрузка на систему, на которую вы можете обратить внимание. Посмотрите на показатели (загрузка ЦП, скорость ввода-вывода, время ответа на веб-запросы) во время выполнения ваших заданий. Есть ли заметный всплеск? это достаточно плохо, что это нарушает фактическое использование системы?

Если программы «не занимают много времени», это хороший признак того, что это не проблема.

Если вы все еще обеспокоены, вы можете сделать другие вещи, чтобы ограничить нагрузку: запускать задания, niceчтобы уменьшить их приоритет, запускать их последовательно, а не одновременно, и так далее.

Дэвид Гелхар
источник
5

Просто просматривая наши производственные системы, самая большая из них имела 862 рабочих места cron (среди всех пользователей, самая большая из них, root, 117), и это не особенно вспыхивает с таким количеством.

Если вы начинаете 60 заданий каждую минуту, 24x7, и все они занимают две секунды, то вы, вероятно, окажетесь в мире боли. Но, пока рабочая нагрузка уравновешивается (в спокойное время и тому подобное), она должна восстанавливаться. Следите за нагрузками на систему в часы пиковой нагрузки (CPU%, дисковый ввод-вывод и т. Д.) И больше беспокоитесь об этом, чем о количестве реальных заданий.

Этот вопрос похож на «Сколько процессов я могу запустить, прежде чем попасть в беду?». Лучше всего попробовать это, так как это зависит от вашей системы. У самого Cron есть несколько ограничений, которые я обнаружил, но, если вы пытаетесь запланировать десятки тысяч рабочих мест, вы напрягаете его больше, чем я когда-либо имел.

Мера, не угадай!

user12022
источник
1

Сам Крон по сути никогда не начнет бороться; система будет полностью загружена задолго до того, как это произойдет.

Эндрю МакГрегор
источник
0

Я согласен со всеми ответами, представленными здесь. Чтобы понять это с несколько иной точки зрения, подумайте о cronjobs как о пользователях на вашей платформе.

Допустим, пользователь использует 1% вашего процессора (операции CRUD / сети и т. Д.). Если одновременно существует 100 таких пользователей (cronjobs), то ваш ЦП достигнет порогового предела, и сервер может не в конечном итоге обработать, что приведет к сбою.

Итак, возвращаясь к вопросу: «Сколько рабочих мест в Cron слишком много?» - Пока ваш анализ показывает, что не может быть внезапного всплеска ресурсов , даже 100 cronjobs хороши.

Хан
источник