сильная нагрузка на БД

12
HC
На сайте с 15.10.2007
Offline
57
5640

Есть интернет-магазин на OpenCart

Уже работает 1,5 года и очень стабильно.

Сейчас ~400 уников\сутки.

Товаров около 230.

И вот проблема.

Есть хостер ihc. На тарифе заявлена, максимальная нагрузка на БД 500с

Примерно месяц назад нагрузка начала превышать норму!

Сейчас висит на уровне 1200-1300с.

Уже получаю 2-ой раз бан услуги. Честно говоря устал.

Идут сумасшедшие запросы по 20-30 запросов в секунду!

В полной расшифровке от хостера, по юзер-агенту проявилось лицо бота. Им оказался ЯндексБот:confused:

Я уже и все папки в robots.txt закрывал от индексации, и закрывал только те, куда запросы идут.

Crawl-Delay ставил уже 10.

Уже даже скрипт написал, который смотрит на число запросов с отдельного IP и блочит на 3 секунды ошибкой 503.

Я с браузера сам хочу, чуть быстрее щелкнул, влетел на 503 ошибку.

Открываю логи, а там!

На DDOS не похоже, ибо нагрузка на проц в норме!

Нагрузка идет именно на базу данных!

И хостер-тоже молодцы.

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

А сегодня взяли и снова бан выдали.

Ну я уже в замешательстве? Что делать?

D
На сайте с 18.05.2012
Offline
64
#1

Лог вполне нормальный.

Блокировать людей по ip это люто.

Точно сказать из-за чего тормозит база используя профайлер, типа xDebug, но учитывая, что скорее всего это shared никто не даст его поставить.

Что делать? Перейти на более мощный тарифный план, параллельно с этим перенести копию магазина на сервер, поставить там xDebug, провести стресс тестирование с помощью ab, посмотреть что собрал в лог xDebug, сразу же будет видно слабое место. Если всё это сложно, попробовать почистить БД от мусора, если поможет поставить в крон задание по очистке.

Z
На сайте с 06.09.2012
Offline
129
#2

Попробуйте бесплатные тарифы cloudflare.com incapsula.com , должно помочь.

Черный список врунов и обманщиков: ua-hosting.company, riaas.ru, takewyn.ru, yahoster/cadedic, Andreylab
aksenax
На сайте с 09.12.2013
Offline
29
#3

1. Из консоли можно прочекать и прооптимайзить все таблицы во всех БД MySQL;

mysqlcheck -u root -p --auto-repair --all-databases

mysqlcheck -u root -p --check --all-databases
mysqlcheck -u root -p --optimize --all-databases

2. Закрыть доступ к сайту тем ботам, которые вам не нужны, оставив только нужные. Сейчас их предостаточно.

Twiza.ru (https://twiza.ru) - современный и многофункциональный сервис для облегчения работы с twitter Продаем аккаунты в индексе Я / G с фоловерами, делаем прогоны с фото и видео контентом
HC
На сайте с 15.10.2007
Offline
57
#4
Точно сказать из-за чего тормозит база используя профайлер, типа xDebug, но учитывая, что скорее всего это shared никто не даст его поставить.

Вы правы. И я каюсь и очень не удобно. Но я сижу на самом дешевом тарифном плане за 50р\мес))) Сейчас таких цен даже у моего хостера нету, т.к я с ним давно и оплатил сразу на пару лет)

Но думаю все-таки приобрести VPS

Попробуйте бесплатные тарифы cloudflare.com incapsula.com , должно помочь.

Спасибо, буду разбираться.

1. Из консоли можно прочекать и прооптимайзить все таблицы во всех БД MySQL;

Код:
mysqlcheck -u root -p --auto-repair --all-databases
mysqlcheck -u root -p --check --all-databases
mysqlcheck -u root -p --optimize --all-databases

спасибо, попробую.

2. Закрыть доступ к сайту тем ботам, которые вам не нужны, оставив только нужные. Сейчас их предостаточно.

А как, если не секрет? :)

D
На сайте с 18.05.2012
Offline
64
#5

HSBC, начните с перехода на более дорогой тариф, а уж когда не будет хватать, тогда на впс. Ну и да, за 50 рублей в месяц грех жаловаться :)

HC
На сайте с 15.10.2007
Offline
57
#6
HSBC, начните с перехода на более дорогой тариф, а уж когда не будет хватать, тогда на впс. Ну и да, за 50 рублей в месяц грех жаловаться

Ну, скажем так, даже самый дорогой тариф из шаринга от этого хостера, я уже не тяну :) Т.е перегружаю)

siv1987
На сайте с 02.04.2009
Offline
427
#7
HSBC:
Сейчас ~400 уников\сутки.

Хитов (просмотры) сколько?

Значит

- Максимально ограничьте запуск скрипта на всякие несуществующие файлы и тп, если используется ЧПУ

- Закройте в роботсе дубли и служебные страницы которые для индексации не нужны, чтобы боты их не долбили.

- Укажите в robots интервал сканирования (Crawl-Delay).

- В последнее время замечено сильная активность некоего AhrefsBot. Забаньте его нафиг. Также проанализируйте логи откуда идут самые частые обращения к сайту.

- Попробуйте включить логирования запросов. Если это нельзя сделать на уровне mysql, в opencart-е должно быть что-то типа единой функции/метода для выполнения запросов. Посмотрите какая страница и сколько запросов генерирует, возможно что-то из этого можно отключить/убрать/оптимизировать.

Z
На сайте с 06.09.2012
Offline
129
#8
HSBC:
Ну, скажем так, даже самый дорогой тариф из шаринга от этого хостера, я уже не тяну :) Т.е перегружаю)

Видимо нужно пояснение к моему посту выше. У инкапсулы в бесплатном тарифе CDN + защита от ботов + настройка доступа + аналитика, что может очень сильно снизить нагрузку и визуально указать на проблемы, попробуйте, пять минут прикручивать к сайту.

МIX
На сайте с 09.01.2010
Offline
48
#9

Не проще ли расширить тариф? (сменить хостинг)

Мои услуги: Удаление вирусов с сайтов (/ru/forum/914903)
aksenax
На сайте с 09.12.2013
Offline
29
#10

HSBC, Не секрет. Вариантов несколько. Самый простой, если сайт 1 или их немного, то можно в файле .htaccess прописать нужные правила кому разрешаем доступ, а кому нет.

Много инфы с примерами есть в гугле по этому запросу:

.htaccess и поисковые боты

Если же сайтов много, то можно сделать правило на уровне nginx глобально сразу для всех. Для этого гуглим аналогичные запросы, только под nginx. По актуальному списку ботов - аналогично гуглим )

Есть еще варианты закрывать доступ на уровне фаервола сервера через iptables, но это сложнее в реализации, чем правила выше.

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

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий