У меня есть несколько работ cron для базового обслуживания, которые не очень ресурсоемки.
У меня также есть настраиваемое планирование задач (которое просто вызывает файл .php и передает информацию через GET, например: cronjob.php? Param1 = param ...). Они могут складываться довольно быстро.
Они просто вызывают системные команды и запускают внешние программы (Nmap - одна из них). Обычно они не занимают много времени.
В любом случае, может ли кто-нибудь мне сказать, примерно, какой точки слишком много? Я знаю, что трудно сказать, так как это зависит от того, какое задание выполняется и как часто, но в какой момент программа crontab начинает "бороться"? У кого-нибудь есть идеи?
Спасибо.
Я бы не стал беспокоиться о загрузке самой "программы crontab" (cron); возможно, вам стоит обратить внимание на общую загрузку системы. Посмотрите на показатели (использование ЦП, скорость ввода-вывода, время ответа на веб-запросы) во время выполнения ваших заданий - есть ли заметный всплеск? Достаточно ли плохо, что это мешает фактическому использованию системы?
Если программы «не занимают много времени», это хороший знак, что это не проблема.
Если вы все еще обеспокоены, вы можете сделать другие вещи, чтобы ограничить нагрузку: запустите задания с nice
чтобы снизить их приоритет, запускайте их последовательно, а не одновременно, и так далее.
Просто просматривая наши производственные системы, у самого большого из них было 862 задания cron (у всех пользователей, у самого большого одиночного, root, было 117), и он не особо выделяется с таким количеством.
Если вы будете начинать 60 заданий каждую минуту, 24 часа в сутки, 7 дней в неделю, и все они будут выполняться за две секунды, то вы, вероятно, попадете в мир боли. Но до тех пор, пока рабочая нагрузка уравновешивается (с периодами покоя и т.п.), она должна восстанавливаться. Следите за загрузкой системы в периоды пиковой нагрузки (% ЦП, дисковый ввод-вывод, ...) и беспокоитесь больше об этом, чем о количестве фактических заданий.
Этот вопрос сродни вопросу «Сколько процессов я могу запустить, прежде чем у меня возникнут проблемы?». Лучше всего попробовать, так как это зависит от вашей системы. Сам Cron имеет несколько ограничений, которые я обнаружил, но если вы пытаетесь запланировать десятки тысяч заданий, вы создаете для него больше нагрузки, чем когда-либо.
Измерьте, а не угадайте!
Сам Cron, по сути, никогда не начнет бороться; система будет полностью загружена задолго до того, как это произойдет.
Я согласен со всеми представленными здесь ответами. Чтобы понять это с несколько иной точки зрения, представьте cronjobs как пользователей вашей платформы.
Допустим, пользователь использует 1% вашего процессора (операции CRUD / работа в сети и т. Д.). Если есть 100 таких пользователей (cronjobs) одновременно, то ваш процессор достигнет порогового значения, и сервер может не справиться с обработкой, что в конечном итоге приведет к сбою.
Итак, возвращаясь к вопросу: "Сколько заданий cron слишком много?" - Если ваш анализ предполагает, что внезапного скачка Ресурсы, даже 100 cronjobs хороши.