Что такое крон (cron)?

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

Cron на хостинге не разрешает устанавливать обновление 1 раз в минуту. Что делать?

Вы можете использовать обновление 1 раз в 2 минуты или 1 раз в 5 минут. Задержка при обновлении данных будет немного больше, но на другую функциональность это не повлияет.

Если в cron поставить */15 вместо */1, это повлияет только на частоту обновления статистики о переходах?

Да.

Хостер добавляет к cron дополнительные символы, это критично?

К примеру, /home/admin/data/server.ru/track-show/process_clicks.php >/dev/null 2>&1

Это не принципиально.

Сильно ли нагружает ресурсы сервера запуск cron каждую минуту?

Короткий ответ

1. Крон не грузит сервер, так как крон это всего лишь расписание, когда запускать ваш скрипт.

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

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

 

Полный ответ

Запуск любых скриптов - приводит к определенной затрате ресурсов сервера. Регулярный запуск скриптов увеличивает эту нагрузку на количество запусков.

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

 

Вам необходимо выяснить каким образом самостоятельно мониторить статистику загрузки вашего хостинга и настроить интервалы для запуска крона исходя из этого. Может быть вам достаточно обновления статистики раз в 5 минут (это всего 12 раз а час) или даже 10 минут (6 раз в час).

 

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

 

Итак, общий принцип. Каждый запуск ест ресурсы. Чтобы снизить общее потребление можно а) уменьшить затраты на каждый запуск. Для этого нужно создавать меньше данных, то есть лить через трекер меньше трафика. б) уменьшить количество запусков. Для этого интервал для запуска крона делаем больше (5 минут, 10 минут, 30 минут, 1 час или даже больше, если вам не нужна оперативная информация и вы все равно смотрите статистику за прошлый день). Однако, от того что вы запускаете скрипт реже, данных которые он должен обработать не становится меньше. Мы выигрываем только на накладных расходах, которые не зависят от количества данных.

 

Общепринятой рекомендацией считается запуск подобного рода скриптов (трекеры, tds) на VPS или выделенных серверах. Так как любой простой из-за исчерпания ресурсов или каких-то проблем у хостера с вашими скриптами стоит вам вполне конкретных денег, впустую потраченных на рекламу или трафик.

При выполнении cron на почту приходят уведомления PHP Notice

Отключите ошибки cron. Это можно сделать дописав к строке > /dev/null 2>&1