Превышение допустимой нагрузки на сервер и wp_cron.php

Клиент получил письмо счастья от хостера:

Здравствуйте! На вашем сайте было зафиксировано серьёзное превышение лимитов по нагрузке. Максимально дпустимая нагрузка по вашему тарифу 65 CP.

Примитивный сайт на WordPress с посещаемостью менее 100 в сутки. Откуда нагрузка и как  бороться?
Первое что стоит посмотреть, это график нагрузки. У приличных хостеров он есть в панели, у не очень приличных, график нагрузки присылают в письме счастья. У хостинга Бегет в панели график выглядит так
нагрузка вордпресс
Четко видны дни, когда нагрузка превышала допустимые значения. У Бегета есть возможность посмотреть и график нагрузки по часам.
Второй шаг, это изучение логов. С удивлением обнаружил что в нагрузка растет при обращениях к wp_cron.php . Этот скрипт выполняет функцию планировщика в WordPress. Публикует отложенные посты, чистит кеш, отправляет почту и т.п.

В логах это выглядит как то так

Конечно можно вообще заблокировать wp_cron. Но это приведет к частичной потере функционала сайта. Лучший вариант, запускать wp_cron.php по расписанию, средствами сервера.

Вначале выключаем запуск через http добавив в wp_config.php строку define('DISABLE_WP_CRON', true);

Затем добавляем в планировщик задач хостинга строчку.

В данном примере планировщик будет запускать скрипт каждые 10 минут. Этого вполне достаточно чтобы скрипт не нагружал сервер и при этом WordPress функционировал в полном объеме

You may also like...