3235

Вопрос о нагрузке на базу данных

10 ответов

Доброго времени суток всем! появилась подобная проблема, сайты: http://оптом-оптика.рф и http://salyra.ru До нового года нагрузка на БД была в районе 1000, потом резко упала на несколько дней и была в районе 150-200, но спустя несколько дней выросла до больших аномальных значений 3000-4200. Никаких работ на сайте не проводилось, при выяснении причин обнаружилось следующее:

На двух сайтах настроено логирование медленных запросов.
как такой запрос может выполнятся 2 секунды:
2017-04-08 0:15:11 - 2.015 - SELECT * FROM oc_store WHERE REPLACE(`url`, 'www.', '') = 'http://xn----8sbxihlacfe2af.xn--p1ai/';

Если в таблице oc_store - всего одна запись.
При чём это только на этом сайте выскакивает. И не только на этом простом запросе.
При этом на соседнем сайте с таким же движком, это проблемы нет.

При этом нагрузка на CPUкоррелирует с посещаемостью сайта (Ночная от дневной отличается в 10 раз).
А нагрузка MySQL проктически постоянна, за некоторыми исключениями. И практически не зависит от посещаемости.
Нагрузка смотрелась по AWStats.
При это ни каких действий по cron на сайте не выполняется.

 

Ответы (10)

Hard 0
12.04.2017 09:06
попросили поддержку перенести аккаунт на другой сервер, не помогло, может кто-нибудь подскажет в каком направлении копать?
Вот выдержка из нашего лога запросов:
2017-04-10 1:15:14 - 0.970 - REPLACE INTO `oc_customer_online` SET `ip` = '62.249.146.12', `customer_id` = '405', `url` = 'http://salyra.ru/gotovye-ochki-focus-655-c-2-fiolet.html';, `referer` = 'http://salyra.ru/ochki/korrigiruyuschie-dlya-zreniya/ochki-quot-focus-quot-ot-105r/';, `date_added` = NOW()
2017-04-10 1:15:21 - 0.943 - REPLACE INTO `oc_customer_online` SET `ip` = '62.249.146.12', `customer_id` = '405', `url` = 'http://salyra.ru/ochki/korrigiruyuschie-dlya-zreniya/ochki-quot-focus-quot-ot-105r/';, `referer` = 'http://salyra.ru/ochki/korrigiruyuschie-dlya-zreniya/';, `date_added` = NOW()
2017-04-10 1:15:38 - 0.677 - REPLACE INTO `oc_customer_online` SET `ip` = '62.249.146.12', `customer_id` = '405', `url` = 'http://salyra.ru/ochki/korrigiruyuschie-dlya-zreniya/ochki-quot-focus-quot-ot-105r/';, `referer` = 'http://salyra.ru/ochki/korrigiruyuschie-dlya-zreniya/';, `date_added` = NOW()
2017-04-10 1:15:40 - 2.013 - REPLACE INTO `oc_customer_online` SET `ip` = '217.168.68.208', `customer_id` = '0', `url` = 'http://salyra.ru/gotovye-ochki-eae-2009-zh-c-1.html';, `referer` = 'http://salyra.ru/search/?search=EAE%202009%20(%D0%96)(C-1)';, `date_added` = NOW()
2017-04-10 1:16:26 - 2.383 - REPLACE INTO `oc_customer_online` SET `ip` = '62.249.146.12', `customer_id` = '405', `url` = 'http://salyra.ru/ochki/korrigiruyuschie-dlya-zreniya/ochki-quot-focus-quot-ot-105r/';, `referer` = 'http://salyra.ru/ochki/korrigiruyuschie-dlya-zreniya/';, `date_added` = NOW()
2017-04-10 1:18:00 - 2.956 - REPLACE INTO `oc_customer_online` SET `ip` = '62.249.146.12', `customer_id` = '405', `url` = 'http://salyra.ru/ochki/korrigiruyuschie-dlya-zreniya/ochki-quot-focus-quot-ot-105r/';, `referer` = 'http://salyra.ru/ochki/korrigiruyuschie-dlya-zreniya/';, `date_added` = NOW()
2017-04-10 1:22:22 - 4.945 - REPLACE INTO `oc_customer_online` SET `ip` = '62.249.146.12', `customer_id` = '405', `url` = 'http://salyra.ru/ochki/korrigiruyuschie-dlya-zreniya/';, `referer` = 'http://salyra.ru/ochki/';, `date_added` = NOW()
Сходные запросы, а разброс времени выполнения довольно приличный.

Вот ещё пример:
2017-04-10 7:12:35 - 1.139 - SELECT * FROM oc_weight_class wc LEFT JOIN oc_weight_class_description wcd ON (wc.weight_class_id = wcd.weight_class_id) WHERE wcd.language_id = '1'
В таблице oc_weight_class - всего 4 записи.
Причём большое время выполнения всегда у разных запросов.

Такая ситуация происходит в основном ночью.

При таком разбросе времени выполнения на простейших запросах, нет возможности что-то дальше оптимимзировать.
Hard 0
13.04.2017 09:53
Перенесли SQL базы на сторонний сервер, скорость выполнения запросов значительно выросла, такой нагрузки которую фиксировал TimeWeb нет. Может кто-нибудь сможет объяснить в чем тут дело?)))
Свернуть ответы
Степан Мазур +20
13.04.2017 10:37
А с поддержкой вы общались на тему нагрузки? Что они говорят?
Hard 0
13.04.2017 10:39
предлагают перейти на более мощный тариф) уверяют что у них всё хорошо
Лавр Иванов +115
13.04.2017 12:54
Пара советов:
- Через phpMyAdmin оптимизируйте таблицы в базе
- Посмотрите на официальном форуме по используемой CMS похожие ситуации со схожими запросами
- Изучите возможность оптимизации подобных процессов с помощью плагинов/расширений для CMS
Свернуть ответы
Hard 0
13.04.2017 13:03
всё что можно сделать уже сделано, повторюсь, после переноса баз данных на сторонний сервер, повышенная нагрузка исчезла, запросы выполняются в разы быстрее и сайты стали работать значительно быстрее
Hard 0
13.04.2017 13:06
сегодня вернем базу от сайта который значительно легче на таймвеб, посмотрим что покажет счетчик нагрузки
Hard 0
19.04.2017 16:44
проблема решена, не самым приятным образом
Свернуть ответы
Добрый день. Как решили ?
Morv 0
17.02.2018 02:24
Подобную ситуацию наблюдаю. Через день, когда по словам ТП происходит резервное копирование сайта, время выполнения запросов скачет от нормального до 5 секунд на запрос.
В итоге сайт почти недоступен полдня, учитывая, что копирование идёт ночью по МСК, а сайт работает на Дальний Восток.

Решилась в итоге у вас ситуация? Каким обазом?

Похожие вопросы

Александр К
193

Чат на сайте и нагрузка на хостинг

Добрый день. Требуется помощь специалиста, тк сам не особо айтишник. Есть сайт на Wordpress, где будет размещена страница с онлайн трансляцией видео потока (embed видео из твича) + требуется оналйн-чат для зрителей, желательно без регистрации...
Павел Шевченко
446

Как поменять домен?

Приветствую. Есть сайт, хочу перейти с бесплатного домена на платный (с tw1.ru на ru) Как это сделать? С ув. Павел
С помощью соцсетей
У меня нет аккаунта Зарегистрироваться
Нажимая кнопку «Зарегистрироваться», я даю согласие на обработку своих персональных данных, указанных в форме регистрации.
С помощью соцсетей
У меня уже есть аккаунт Войти
Нажимая кнопку «Зарегистрироваться», я даю согласие на обработку своих персональных данных, указанных в форме регистрации.
Инструкции по восстановлению пароля высланы на Ваш адрес электронной почты.
Пожалуйста, укажите email, который Вы использовали для входа на сайт.