Неожиданное резкое повышение нагрузки на CPU сервера может быть связано с различными причинами. Не беда, если вы заметили, что она возросла после того, как посещаемость сайта заметно увеличилась: это вполне естественное явление – большое количество посетителей создают большую нагрузку на хостинг. Однако если посещаемость сайта уже долгое время не оставалась неизменной, а нагрузка на сервер заметно возросла, значит, вы столкнулись с технической проблемой, которую необходимо как можно скорее решать.
Прежде всего, необходимо вспомнить, проводили ли вы какие-либо работы на сайте, после чего нагрузка на сервер резко подросла. Вы могли подключить какой-то неоптимизированный плагин для WordPress или другой CMS, установить мод, делающий множество запросов к базе данных, случайно отключить кэширование или добавить в Cron задачу, которой требуется много ресурсов для выполнения. В любом случае, чтобы решить проблему, просто проанализируйте, какие ваши действия на сайте могли привести к возросшей нагрузке, и «откатитесь» обратно.
Гораздо сложнее снизить возросшую нагрузку на хостинг, если она связана с действиями ботов. Боты (они же пауки, spiders или краулеры) бывают плохими и хорошими. К хорошим ботам относятся поисковые - Yandex Bot, Googlebot и другие пауки, принадлежащие поисковым системам. Хоть они и создают нагрузку на сайт, активно сканируя страницы, однако их работа необходима для его индексации и дальнейшего ранжирования в поисковой выдаче. Другое дело – «плохие» боты. Они способны создать значительную нагрузку на сервер, приведя к увеличению нагрузки на CPU и, как следствие, «торможению» web-ресурса. При этом, никакой пользы такие боты не несут.
«Плохие» боты довольно многочисленны и могут выполнять самые разнообразные действия.
User-agent: AhrefsBot Disallow: / User-agent: MJ12bot Disallow: / User-agent: SemrushBot Disallow: / User-agent: LinkpadBot Disallow: /
Но гарантированный результат дают только директивы в файле .htaccess.
RewriteEngine on RewriteCond %{HTTP_USER_AGENT} ^.*(Ahrefs|LinkpadBot|SemrushBot|MJ12bot).* [NC] RewriteRule .* - [F,L]
Запретить парсинг сайта качалками ReGet, Teleport и другими можно, добавив в .htaccess:
RewriteEngine On RewriteCond %{HTTP_USER_AGENT} .*Download\ Master.* [OR] RewriteCond %{HTTP_USER_AGENT} .*Mass\ Downloader.* [OR] RewriteCond %{HTTP_USER_AGENT} .*FlashGet.* [OR] RewriteCond %{HTTP_USER_AGENT} .*GetRight.* [OR] RewriteCond %{HTTP_USER_AGENT} .*Teleport.* [OR] RewriteCond %{HTTP_USER_AGENT} .*ReGet.* RewriteRule ^.* - [F,L]
Все эти боты способны оказывать значительную нагрузку на сервер (CPU) и мешают работе сайта.
Логи сервера (access_log) – это список запросов к сайту, сделанных как разнообразными ботами, так и обычными посетителями. По сути, лог – это обычный текстовый файл, где перечислены IP-адреса посетителей, страницы, к которым они обратились, и User-Agent – краткая информация, которую посылает web-сайту клиентское приложение или бот.
«Хорошие» боты не скрывают свое присутствие на сайте, поэтому в информации в логах будет прямо указан, например, YandexBot или Googlebot. Грабберы и парсеры, разумеется, «делают вид», что они являются обычными посетителями.
Разобраться в огромном логе довольно трудно, если нет никаких инструментов для его анализа. И тут на помощь приходят специальные генераторы отчетов, которые анализируют log-файлы и генерируют HTML-отчеты на их основе. К ним относятся AWStats, Webalizer, Open Web Analytics, CrawlTrack и ряд других. Обычно одна из этих программ уже установлена на хостинге, задайте вопрос в техподдержку, чтобы получить больше информации.
Генератор отчетов в наглядном виде показывает:
Очень часто даже поверхностного взгляда на отчет в логах хватает, чтобы определить, что вызвало резкий рост нагрузки на сервер.
Если не заботиться о блокировке ненужных «плохих» ботов, рано или поздно нагрузка на CPU возрастет до такой степени, что хостер предложит вам перебраться на более дорогостоящий тариф: сначала shared, потом VPS и, наконец, собственный сервер. И не исключено, что, в конце концов, доходы сайта даже не смогут покрыть расходы на его администрирование. Так что, лучше определить, что вызвало увеличение нагрузки на CPU заранее и принять соответствующие меры.
Меню сайта
Резкий рост нагрузки на сервер |