Приходит робот Тындекса и грузит сайт. Что делать?, Хостинг, робот поисковой си

BruceW

Новичок
Приходит робот Тындекса и грузит сайт. Что делать?, Хостинг, робот поисковой си

Раньше сайт (большая доска объявлений, 50 тыс страниц, из которых проиндексировано 33 тыс.) держали на Плюсвебе, хостер жаловался, что поисковик грузит сервер и обрубал процессы (допустим заходит в 3 часа ночи и вешает), из за того что поисковику "обрубался" коннект доска индексировалась неполностью. Исследуя аналогичную тему на:
http://forum.searchengines.ru/showthread.php?t=110043 можно прийти к выводам

а) искать другой хостинг
б) переходить на VDS
в) банить поисковик (что для нас неприемлемо, т.к. нам очень важен трафик)

Естественно для сайта с посещаемостью в не более 800 человек в день в нормальном состоянии излишне такие траты (на другой хостинг - Петерхост мы уже перешли) разница оказалась только в том что предыдущий не мог выразить цифрами загрузку аккаунта а Петерхост может. Что в принципе и может их подтолкнуть закрыть наш аккаунт:


Наша автоматическая система мониторинга нагрузки процессоров выявила, что в последнее время Ваш аккаунт создает КРИТИЧЕСКУЮ нагрузку на сервер баз данных MySQL (mysql4.z8.ru), что существенно замедляет работу других аккаунтов и угрожает безопасности работы всего сервера целиком. Периодические тесты приведены ниже.


--------------------------------------------------------------------------------------------------
| Период тестирования | Пользователь | Нагрузка,% | CPU,мин | Запросов |
|-------------------------------------------|----------------|------------|---------|------------|
| 2007-03-09 23:35:01 - 2007-03-09 23:50:02 | dbu_miheeff2_1| 16% | 4.86 | 1301 |
| 2007-03-09 23:20:02 - 2007-03-09 23:35:01 | dbu_miheeff2_1| 28% | 8.58 | 2713 |


это график одной из пиковых нагрузок. Такое "счастье" ко мне приходит 2-3 раза в неделю. Обычно не более 16 процентов пиковой нагрузки сервера. Давайте вместе сформулируем те меры, которые можно предпринять со скриптами сайта, чтобы избежать перегрузки страниц сервера.

Сайт, который вешает поисковик Доска объявлений (33 тыс страниц) и работа, вакансии (52 тыс страниц - из них Яндекс проиндексировал только 31 тыс.)
 

phprus

Moderator
Команда форума
Оптимизируй запросы и код. Провери правильно ли расставлены индексы в таблицах в базе mysql (тут тебе поможет explain).

У тебя почти 3 тысячи запросов за 15 минут. Если предположить, что поисковик качает 1 страницу раз в 10 секунд, то это по 30 запросов на страницу. Само по себе такое кол-во это не очень много, но раз оно грузит сервер, то наверное эти запросы скорее всего не используют индексы или неправильно написаны. По этому начни с оптимизации запросов.
 

clevel

Новичок
Была аналогичная ситуация со скриптом каталога ссылок mad-cat. Заказчки установил его, чтобы сделать несколько сайтов такого типа. Пока нагрузка была минимальной, все было ок.. Потом у меня сервак начал задыхаться, mysql начал выдавать нагрузку, хотя кол-в запросов на сервак в секунду оставалось в пределах нормы.

Я решил посмотреть внутренности это скрипта и был в шоке от того, что там было.

Например.Вывод категорий и подкатегорий.
Чудо автор написал sql, который выодит категории первого уровня.
В цикле дл каждого каталога первого уровня делались следующие подзапросы:
- найти id всех подкаталогов
- по найденным id найти кол-во ссылок в каждом каталоге
- и еще парочка подзапросов в таком же духе.

Получилось, что для вывода списка рубрик (штук 20-30) понадобтся туева куча запросов к базе. Индексов в таблицах оной я не обнаружил...

Переписал это кусок, теперь там всего один запрос к базе (с LEFT JOIN), поставил нуные инедксы на таблицу.

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

Я вот всегда задаюсь вопросом - кто такие скрипты уродские пишет? Руки мало поотрывать..
 
Сверху