Страница 1 из 1

Запрос MySQL грузит процессор на 100%

СообщениеДобавлено: 23 июн 2015, 01:18
lomuk
Вот такая кака появляется регулярно, пытаюсь убить процесс, не убивается, только жесткий ребут мускла, потом все по кругу, сейчас попробую удалить объявление №46, посмотрим что выйдет, но все же интересно почему так грузит?


MySQL on localhost (5.5.41) load 1.00 1.10 1.31 2/267 32695 up 10+21:20:48 [01:12:41]
Queries: 17.9M qps: 20 Slow: 11.6M Se/In/Up/De(%): 96/01/00/00
Sorts: 0 qps now: 4 Slow qps: 0.0 Threads: 2 ( 2/ 49) 00/00/00/00
Key Efficiency: 99.8% Bps in/out: 3.1k/29.5k Now in/out: 112.1/ 9.5k

Id User Host/IP DB Time Cmd State Query
-- ---- ------- -- ---- --- ----- ----------
42403 user localhost new 703001 Killed freeing SELECT `seo`.`id` AS `t1_c0`, `seo`.`model_name` AS `t1_c1`, `seo`.`model_id` AS `t1_c2`, `seo`.`url_ru` AS `t1_c3`, `seo`.`url_en` AS `t1_c4`, `seo`.`title_ru` AS `t1_c5`, `seo`.`title_en` AS `t1_c6`, `seo`.`description_ru` AS `t1_c7`, `seo`.`description_en` AS `t1_c8`, `seo`.`keywords_ru` AS `t1_c9`, `seo`.`keywords_en` AS `t1_c10`, `seo`.`url_de` AS `t1_c11`, `seo`.`title_de` AS `t1_c12`, `seo`.`description_de` AS `t1_c13`, `seo`.`keywords_de` AS `t1_c14`, `seo`.`direct_url` AS `t1_c15` FROM `ore_seo_friendly_url` `seo` WHERE (model_name="Apartment") AND (`seo`.`model_id`='46')
132085 user localhost new 0 Query show full processlist

Re: Запрос MySQL грузит процессор на 100%

СообщениеДобавлено: 06 авг 2015, 14:05
lomuk
Ребята, такой бред повторяется с кучей запросов, и грузит 8 ядер в 100%

Re: Запрос MySQL грузит процессор на 100%

СообщениеДобавлено: 06 авг 2015, 14:56
Xpycm
Посмотрите на max_execution_time, если оно равно 0 или больше 60, то уменьшайте. Зачем вам вечно выполняющийся процесс.

Добавьте отдельные индексы для полей model_name и model_id, а также составной индекс из model_name и model_id в таблице ore_seo_friendly_url, если их нет.
Отключите APC|Memcached и посмотрите на результат.

Сервер настраивался "по феншую" или "а впрочем пофиг на настройки, оно и так работает, здесь же Xeon E5/E7 и 64GB RAM" ?
Переходите на SSD.

Re: Запрос MySQL грузит процессор на 100%

СообщениеДобавлено: 06 авг 2015, 18:14
lomuk
Раз:
Мускл настроен нормально по "феншую" даже мусклтюнер молится на идеализм настройки, с max_execution_time поиграюсь, кеширование уже отключал не помогло, индекс добавил, посмотрим что будет

Два:
Сервер изначально на SSD

Три:
Параллельно с ОРЕ на сервере ещё 11 проектов с посещаемостью на 3-4 порядка выше, но с ними проблем нет.

Re: Запрос MySQL грузит процессор на 100%

СообщениеДобавлено: 06 авг 2015, 20:43
Xpycm
По результатам отпишитесь. Если не поможет - будем думать что ещё может быть.

По сути, в этом запросе нет ничего сложного: здесь даже нет ни JOIN, ни GROUP BY, ни ORDER BY.

Кстати говоря, версии mysql и php не пробовали обновлять на более свежие? Например, в том же php бывают неприятные моменты с производительностью и лечится оно только переходом на более новую версию.

Также в корневом файле index.php посмотрите чтобы обязательно были закомментированы строки:
Код: Выделить всё
defined('YII_DEBUG') or define('YII_DEBUG',true);
и
defined
('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL',3); 


в файле db.php:
1) ключ 'enableProfiling' был в значении false
2) включен кэш схемы таблиц: ключ 'schemaCachingDuration' в значение, например, 7200

Re: Запрос MySQL грузит процессор на 100%

СообщениеДобавлено: 07 авг 2015, 00:56
lomuk
Запросы бывают и с джоинами и с ордерами, строчки в индексе закомментировал, 1) ключ 'enableProfiling' был в значении false, был в true.

PHP 5.5.12
MySQL 5.5.43

Не совсем старые стоят)

В общем посмотрим, о результатах отпишусь

Re: Запрос MySQL грузит процессор на 100%

СообщениеДобавлено: 07 авг 2015, 14:33
lomuk
Если закомментировать defined('YII_DEBUG') or define('YII_DEBUG',true); то не работает поиск в админке ( новости и объявления, поиск по названию, сортировки не пробовал )

Re: Запрос MySQL грузит процессор на 100%

СообщениеДобавлено: 11 авг 2015, 09:22
Koduc
Debug точно отключать нужно. Плюс можете в самом MySQL настроить, чтобы он записывал "долгие" запросы в отдельный файл, потом проанализировать, откуда такое и почему.

Re: Запрос MySQL грузит процессор на 100%

СообщениеДобавлено: 12 авг 2015, 15:38
lomuk
Как же его отключить, если без него почему-то не работает часть функционала админки? Что с пользовательской стороны происходит, не проверял

Re: Запрос MySQL грузит процессор на 100%

СообщениеДобавлено: 12 авг 2015, 17:36
Koduc
Ну значит чинить надо)
Конечно, проблемы с MySQL это не решит, но немного ускорить должно.
А по поводу MySQL.. Нужно смотреть какие именно запросы тормозят и оптимизировать работу. Удаленно сложно что-то точное сказать..

Языки лишние можно поудалять (как я понимаю, они просто деактивированы). Но если было много кастома - то перед удалением сделайте езервную копию. Тоже может немного получится ускорить.