Main > Apache | PHP | SEO > Нагрузка на сервер от поисковиков

Нагрузка на сервер от поисковиков

23.03.2012 0 comments » Views: 1,670

Робот

Сегодня заметил что один из моих серверов дико перегружен. Load average был стабильно за 30. Началось все с того, что при коннекте к серверу по ftp, я получил ошибку 10600, что мол нет коннекта к серверу. Да уж подумал я, пошел по ssh смотреть в чем проблема.

Надо заметить, что это не совсем сервер, в плане понимания железа, а VPS от Hetzner c такими параметрами: 1 ядро 3 GHz-ового процессора и 2ГБ оперативки. Т.е. не самая паршивая конфигурация. Так вот, пошел я на сервер и увидел кучу процессов апача, которые и грузили сервер. И да, это была не ДДОС атака, т.к. при показе 503 ошибки, кол-во запросов к серверу падало. Т.е. кто-то на той стороне, обрабатывал это.

Я конечно знал, что этот сервер (а точнее сайт) посещает порядка 25к уников в день. Но исходя из текущей статистики, которая работала от клиентов через JS, это было не более 10 запросов в минуту, кто же остальные? Раз не работает JS, значит всего скорее боты. Ну, а раз боты, значит надо узнать кто именно: те кто парсит сайт, или поисковые боты.

Не долго думая я написал функцию, которая собирает ip в массив, сеарилизирует его, а при следующем запуске и наличии такого ip в базе, увеличивает счетчик посещаемости:

Итого в одном файле мы храним сериализированную инфу, а во втором (readable) мы выводим в читаемом и отсортированном по убыванию формате. Функция не претендует на мега анализатор, и не рассчитана на постоянную работу, но получить результаты работы в течении 5 минут вполне можно, даже на мега посещаемом ресурсе.

Таким образом я выделил группу, ip адресов, которые делали больше всего запросов на сайт. Дальше я пошел искать по ним инфу, а точнее кому они принадлежат. Сделать это не сложно, я использовал сервис domainstools.comhttp://whois.domaintools.com/192.168.0.1

Таким образом, я увидел, что основную нагрузку создает поисковик Google-а. Что же делать дальше, поисковик-то баннить нельзя? К счастью, нормальные поисковики, могут использовать robots.txt, а в нем мы можем указать через какой промежуток времени, поисковик может делать запросы. Разумеется, это не фатальное ограничение для поисковиков, а всего лишь рекомендация, но в моем случае это сработало. Заветная конструкция выглядит так: Crawl-delay: 1, где 1 это промежуток через который поисковик может загружать документы, т.е. если поставить туда 5, то загрузка будет происходить 1 раз в 5 секунд. Вот это мне и надо было. Вот полный robots.txt:

Вначале, это не сработало, но где-то через час, все нормализовалось и пока продолжает работать так, как ожидалось.

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

Будьте внимательны, поисковик может отреагировать в вашем случае, совсем не так как в моем, и например, перестанет вас индексировать вообще. Поэтому будьте особенно внимательны, в случае, если вы не совсем понимаете как это работает и зачем это надо.

Так же в случае Google, помогает совет про управление скоростью загрузки через настройки в Google.Webmaster

Author: | Rating: 4/5 | Tags: , , ,

Leave a Reply

Your email address will not be published. Required fields are marked *

Allowed HTML-tags: <a>, <code>, <i>, <em>, <strong>, <b>, <u>, <strike>