Назад | Перейти на главную страницу

Как скрипты cron влияют на производительность веб-сервера?

Меня просто интересовало, как cron-скрипт повлияет на пользователей сайта? (Если вообще) Я хочу выполнить сценарий, выполнение которого занимает около минуты на регулярной основе. Будет ли замечено падение производительности? Мне нужно следить за чем-то конкретным?

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

Это зависит от того, что делает ваш сценарий. Если эта минута потрачена на ожидание пары сетевых подключений, у вас, вероятно, нет проблем. Другое дело, если он сильно ударит по дисковой подсистеме или процессору. Как и любой другой интенсивный пользователь ресурсов, скрипт cron может поставить систему на колени.

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

IMHO, если задача, которую выполняет скрипт, является чем-то инкрементным, например «собрать все новые файлы из / входящих, сжать и заархивировать их на тот-другой-сервер-в-подвале», лучше запускать его часто, чтобы сохранить периоды высокой нагрузки короче.

Вы также можете попробовать запустить процесс сценария cron под nice / ionice, чтобы дать ему более низкий приоритет при использовании ресурсов.

PS: Некоторые дистрибутивы Linux для настольных компьютеров (кстати, вы не упоминаете ОС) создают впечатление, что нормальные люди (а я, по-видимому, нет) спят в 3–4 часа ночи, поэтому все их задания cron выполняются примерно в это время, особенно в субботу вечером (или утром в воскресенье, если хотите). В последнее время они начали менять время начала на 4:00, 4:15, 4:30 и т. Д., Но несколько лет назад все они начинали с, например, 4:00 утра. Вы действительно не хотите знать, что это сделало для уставшего и капризного кодировщика, который использовал машину в то время ...

Это также зависит от того, как часто вы выполняете свой сценарий.

Воздействие будет различным в зависимости от того, как часто оно выполняется (по расписанию). Вы можете запланировать его запуск один раз в день. Напротив, вы можете запланировать его запуск каждые несколько минут! Это также зависит от ваших потребностей.