Меню

Высокая нагрузка WordPress на CPU — процессор, сервер и хостинг

Что делать при превышении допустимой нагрузки на сервере-хостинге. Это один из самых неприятных моментов в работе с сайтом.

Прошел период примерно в 30 дней, в работе сайта больше проблем нет и высокая нагрузка на сервер, процессор больше не наблюдается. Теперь следует рассказать как мне удалось справиться с периодической высокой нагрузкой WordPress на процессор и сервер.

Все началось совершенно спонтанно и с каждым днем ответ сервера становился все более долгим. Затем в один прекрасный момент в панели webmaster Yandex, появилось соответствующее критическое уведомление. В котором был указан долгий ответ сервера практически на 40 — 50 страницах сайта. Все по-порядку.

Высокая нагрузка создаваемая  WordPress сайтом на серверный процессор CPU — основные симптомы этой проблемы

Высокая нагрузка создаваемая WordPress способствует долгому ответу сервера, долгой загрузке страниц сайта, снижению скорости сайта, критическим ошибкам.

На моем сайте проблема возникала совершенно спонтанно и в разные временные периоды. Толчком 100% нагрузки на CPU сервера становились переходы между страницами сайта. Примерно на 2-й странице, возникал резкий скачек в работе процессора сервера. Хочется заметить, что в этот момент оперативная память практически не имеет колебаний. А количество процессов совершенно незначительно и не должно так пагубно нагружать серверный процессор.

Основные характерные признаки нагрузки, которые встречаются у многих вебмастеров:

  • Повышение лимита нагрузки процессора на хостинг-сервере.
  • WordPress начал создавать недопустимую нагрузку на CPU.
  • Пиковые значения, жесткая перегрузка процессора на хостинге.
  • Долгий ответ сервера, варьируемое значение колеблется от 5  до 30 секунд.
  • Чрезмерная нагрузка происходит спонтанно, в разные временные периоды.
  • Происходит заторможенность сайта, страницы практически не загружаются или этот процесс проходит очень долго.
  • Сайт в пиковых пределах крашится.
  • WP создает долгий ответ сервера, сайт работает не стабильно. В пиковых скачках CPU, оперативная память работает в штатном стабильном режиме.
  • Количество затронутых и исполняемых процессов в периоды скачков минимальны.
  • Потоковое пакетное обращение  и задействованные соединения на nginx или apache минимальны.
  • Данная аномалия проходит несколько раз в день, в разные промежутки времени. Заканчивается также быстро, как и началась.

Это именно то, что происходило с моим сайтом в течении месяца. Наглядным примером будут следующие изображения:

Пример пиковой нагрузки WordPress на мой сервер, на примере моего сайта и сервера. Обратите внимание на количество активных процессов.

Как видите количество задействованных процессов минимально. Оперативная память удерживается в стабильном значении, с учетом открытого браузера и огромного количества страниц. А вот все ядра CPU работают в критической нагрузке, изначально причину понять вообще невозможно.

Какие методы я перепробовал в борьбе с критической нагрузкой на CPU

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

Самое банальное, я грешил на плагины WP и нехватку памяти. Хотя так по-честному, движок использует всего 16 мб памяти из допустимых 512 мб которые я выделил. Что собственно я пробовал:

  • Провел полное обновление Debian, затем почистил всю систему.
  • Удалил 99% сохраненных ревизий баз данных на VestaCp.
  • Раз двадцать просматривал конфигурационные файлы в VestaCp на наличие ошибок.
  • Нашел в почтовом сервере Exim большое количество системных логов (полностью удалил).
  • Проверял сайт на наличие вирусов (отсутствуют).
  • Делал трассировку до сайта, проверял скорость интернет соединения.
  • На сайте отключил сохранение ревизий записей, большего на сайте не предпринимал. Сайт оптимизирован под 98% смысл его проверять.

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

В чем собственно заключалась проблема чрезмерной нагрузки WP на CPU, и как я ее решил

Проблема большой нагрузки WordPress на процессор сервера, сопровождается периодическими скачками нагрузки на CPU. Долгим ответом сервера.

Проблема заключалась в ошибке WP Cron (крона). Месяца четыре назад  я устанавливал плагин, который запрещает обновляться движку, темам и плагинам. Первым звонком по моим пониманием, были ошибки в серверных логах сайта адресованные wp-cron.php. Ошибка заключалась в выделении памяти на процесс, а точнее нехватки памяти.  Когда я вспомнил про эту ситуацию, то сразу обратил внимание.

Что мне помогло:

  • Я установил плагин WP Crontrol — планировщик задач wp cron. Советую установить его сразу, очень хорошее решение.
  • После установки, я увидел картину в пиковую нагрузку из примерно 900 идентичных событий, которые как я понимаю касаются изображений.

Самое простое решение обнулить все события wp cron до изначального состояния, делается это в functions.php. Достаточно вставить в самом начале файла под <?php следующую строку update_option(‘cron’, » «); . Сохраняем и заходим на сайт, достаточно отрыть пару страниц. После этого возвращаемся в файл и удаляем эту строку.

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

Разница после того как я решил проблему высокой нагрузки WP на сервер и процессор. Обратите внимание на количество активных процессов и CPU.

Надеюсь эта статья Вам пригодиться и поможет. Если возникнут вопросы пишите в комментариях или в личку.

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

Спасибо, что читаешь Nicola Top

Комментарии 4

  • Столкнулся с аналогичной ситуацией, периодически в 9 — 11 часов утра, пиковая нагрузка на CPU хостинга, уже отрубил автоматические обновления, не помогло.
    Проделал процедуру из данного поста, но что то сайт вообще не открывался, пока не удалил строку.

  • Команда update_option(‘cron’, »); помогла. Спасибо!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

20 − пять =