2.17.8. Анализ причин высокого потребления ресурсов
Основные причины нагрузки
Количество запросов и работа скриптов сайта
Одной из главных причин высокой нагрузки на сервер является повышенное количество запросов к сайту в сочетании с недостаточной эффективностью кода его скриптов, выполняемых для каждого из посетителей. Таким образом, чем более эффективно работают скрипты сайта для каждого посетителя, тем большую нагрузку сайт сможет принять в целом.
Также на уровень посещаемости сайта влияют поисковые боты. Поэтому при индексации сайта поисковыми службами может возникать повышенная нагрузка на сервер. Задать параметры индексации для вашего сайта в целях снижения числа запросов от бота возможно через файл robots.txt или веб-мастер на стороне поискового сервиса.
При необходимости для снижения нагрузки и проведения технических операций можно ограничить доступ к сайту.
Запросы к базе данных
На уровень нагрузки могут влиять запросы к базе данных со стороны скриптов сайта.
Запросы в базу данных не должны выполняться более 15 секунд. Все запросы, которые выполняются более 5 секунд, можно посмотреть в разделе «Медленные запросы».
В данном случае необходимо оптимизировать базу данных. С некоторыми примерами оптимизации можно ознакомиться здесь и здесь.
Вредоносный код и исходящие соединения
Нежелательную нагрузку на сайт и сервер могут создавать вредоносные скрипты (при их наличии).
Проверить наличие заражённых файлов можно, выполнив антивирусную проверку хостинг-аккаунта или воспользовавшись сторонними инструментами.
Вредоносные скрипты могут создавать внешние соединения на другие сайты, что может вызывать повышенное время обработки запросов сайтом. Со списком попыток исходящих соединений можно ознакомиться в разделе «Исходящие соединения».
Способы анализа нагрузки
Можно ли где-то посмотреть, какие именно сайт или скрипты создают повышенную нагрузку?
К сожалению, нет. Информация о том, как выполняется подсчёт процессорного времени, представлена здесь.
Часто причины проблемы можно определить при помощи ручного анализа логов доступа сайта и информации из разделов «Нагрузка на веб-сервер» и «Нагрузка на MySQL-сервер».
Ручной анализ
Логи веб-сервера и графики нагрузки для анализа можно получить в разделе «Мои сайты → Логи доступа сайта» и «Мои сайты → Статистика запросов».
При анализе стоит обратить особое внимание на скрипты, использующие POST- и множество AJAX-запросов. Такие запросы, как правило, вызывают самую большую нагрузку в связи с особенностями их технологии.
Пример нагрузки на веб-сервер
Причиной подобного скачка потребления ресурсов, как правило, является DDoS-атака или сканирование сайта с целью взлома.
Необходимо проанализировать логи сервера, особое внимание обращая на нетипичные POST-запросы.
Для защиты сайтов на WordPress от атак на xmlrpc.php и wp-login.php может помочь выполнение пунктов 8-10 из инструкции.