Ошибка wp-cron.php WordPress. Нагрузка и нехватка памяти
01.09.2018
Буквально пару недель назад, столкнулся совсем случайно с неприятным моментом в серверных логах проекта. Значительное увеличение нагрузки на исполнительные файлы. Сопровождающиеся нехваткой памяти, фатальной ошибкой и невозможностью увеличить лимит допустимого значения памяти. Кажется что это банальная ошибка нехватки памяти, которую можно спокойно исправить.
Конечно все доступные методы исправления этой ошибки, я описал в прошлой статье. Надеюсь они будут полезны и решат ваши проблемы. В моем случае, все методы были провальными. Рассмотрев более детально логи, можно было увидеть. В конце адреса ошибка обращалась непосредственно к wp-cron.php. Что и приводило к фатальной ошибке. Именно поэтому я пишу этот пост, возможно он пригодиться тем у кого возникнут схожие проблемы с cron на WordPress.
Disabling wp-cron.php in WordPress
Содержание статьи:
Для чего нужен wp-cron.php на WordPress
Cron — своего рода, частично заменяет серверный планировщик. Беря на себя некоторые функции к примеру:
Публикация постов Очистка корзины движка Очистка ревизий записей Ведение кеша Отправка некоторых уведомленийВыполнение заданий происходит немного другим способ. Серверный cron взаимодействует с исполнительным элементом, точно в заданный интервал указанный при формировании задания. А вот wp-cron.php, выполняется только тогда, когда пользователь заходит на ресурс.
How to Clear Your Pending WordPress Cron Tasks in phpMyAdmin (in 14 seconds)
Wp-cron не работает, тормозит и способствует высокой нагрузке
Действительно недостатки есть везде, даже в работе с WordPress. Я не хочу сказать, что эта система управления плохая нет. Это отличная стабильная CMS, а минусы есть везде. Главной ошибкой этого движка, является его планировщик заданий, установленный по умолчанию.
Который вызывает значительную нагрузку на сервер и базу данных во время исполнения. Время загрузки сайта увеличивается от 100-500 мс, если возникает одновременный поток пользователей от 100 человек. Мгновенно возрастает ресурсозатратность, использование памяти и ресурсов процессора. Соответственно серверная часть, не может позволить использовать большее количество ресурсов чем установлено. Именно поэтому мы получаем фатальную ошибку, спровоцированную торможением этого планировщика.
Как отключить Wp-cron и использовать серверный планировщик
Отключение достаточно простое, открываем файл конфигурации wp-config.php. Затем следует ввод константы:
define ( 'DISABLE_WP_CRON' , true ) ; |
Смотрите изображение:
После отключения планировщика непосредственно на WordPress, необходимо сразу включить его на сервере. Так как выполнение всех запланированных задач, будет мгновенно завершено. А это не допустимо!
Подключаем задание cron в панеле VestaCp
Для этого нам необходимо, авторизоваться в хостинг панели. Затем перейдите в соответствующий раздел и нажмите на «Плюс», перейдя в раздел добавления задания. В строке «Команда» — укажите следующий путь к исполнительному файлу:
http : //ваш_сайт/wp-cron.php?doing_wp_cron |
Задайте интервал исполнения каждую минуту или каждые пять минут. Как вам удобно! Для низко-ресурсных серверов, лучшим значением будет 5 минут.
Таким образом можно достаточно быстро, добавить данное задание в очередь на выполнение.
Как заменить wp-cron на серверный планировщик
Эти методы подойдут, в том случае если у вас нет панели управления VestaCp. Для смены планировщика заданий, воспользуйтесь консолью. Затем наберите одну из предложенных команд на выбор:
* / 4 * * * * wget - q - O - http : //ваш_сайт/wp-cron.php?doing_wp_cron > /dev/null 2>&1 * / 4 * * * * curl - O http : //ваш_сайт/wp-cron.php?doing_wp_cron > /dev/null 2>&1 * / 4 * * * * cd / var / www / ваш _сайт / public_html ; php wp - cron . php > / dev / null 2 > & 1 |
Все три задания обращаются к файлу с интервалом один раз в четыре минуты. Нужно выбрать один из них и изменить ваш_сайт на домен.
Немного дополнительной информации: Если у вас нет желания отключать плаировщик на WordPress. Воспользуйтесь плагином, который поможет понять какие задания активны и на сколько влияют на ресурсы сервера. Плагин называется: WP-Cron Events
Эти статьи относятся к теме которую вы изучаете, посмотрите их, пожалуйста. Возможно они будут Вам интересны.
Спасибо, что читаешь Nicola Top