Перейти к содержанию
Официальный форум поддержки Simpla

[simpla 2.1.5] Прошу помощи специалистов. Переполнение диска кешем mysql


Рекомендуемые сообщения

Добрый вечер, форумчане.
Движок оброс множеством доработок, приличным трафиком и ~10000 товарами. Приключилось все еще на хостинге, что привело меня к переезду на VDS.

 

Характеристики машины:
CPU: 4 Core RAM: 4096 Mb Диск: 20 Gb,SSD
 

А приключилось следующее:

При неизвестных мне обстоятельтвах, mysql не хватает памяти выполнить некоторые запросы. Он сбрасывает кеш на диск и сбрасывает его до тех пор, пока не займет все пространство на диске, что приводит к блокировке всех сервисов, как mysql, так и php.

 

В логе ошибок PHP - все кристально чисто.

 

mysqltuner - говорит, что конфиги правильно настроенны.

 

а вот в логах mysql-slow есть много интересного:

Запросы с большим временем выполнения и неиспользующим индексы:

# Time: 160318 14:02:09
# User@Host: o[o] @ localhost []
# Thread_id: 18308  Schema: o  QC_hit: No
# Query_time: 240.045449  Lock_time: 0.000199  Rows_sent: 1  Rows_examined: 8227
SET timestamp=1458291729;
SELECT  
					p.id,
					p.url,
					p.brand_id,
					p.name,
					p.annotation,
					p.body,
					p.bodytwo,
					p.video,
          pc.category_id,
					p.position,
					p.created as created,
					p.visible,
					p.proizvodstvo,
					p.featured, 
					p.meta_title,
					p.meta_keywords, 
					p.meta_description, 
					b.name as brand,
					b.url as brand_url
				FROM s_products p
				INNER JOIN s_products_categories pc ON pc.product_id = p.id 
				LEFT JOIN s_brands b ON p.brand_id = b.id
				, s_variants v 
				WHERE 
					1
					
					
					
					 AND p.id=v.product_id AND (v.sku LIKE "%Самокат%" OR p.name LIKE "%Самокат%" OR p.meta_keywords LIKE "%Самокат%")  AND p.id=v.product_id AND (v.sku LIKE "%3-х%" OR p.name LIKE "%3-х%" OR p.meta_keywords LIKE "%3-х%")  AND p.id=v.product_id AND (v.sku LIKE "%колесный%" OR p.name LIKE "%колесный%" OR p.meta_keywords LIKE "%колесный%")  AND p.id=v.product_id AND (v.sku LIKE "%Marvel%" OR p.name LIKE "%Marvel%" OR p.meta_keywords LIKE "%Marvel%")  AND p.id=v.product_id AND (v.sku LIKE "%Spider%" OR p.name LIKE "%Spider%" OR p.meta_keywords LIKE "%Spider%")  AND p.id=v.product_id AND (v.sku LIKE "%Man%" OR p.name LIKE "%Man%" OR p.meta_keywords LIKE "%Man%") 
					
					
					
					
					
					AND p.visible=1
					
				
				ORDER BY (SELECT p.position FROM s_variants pv WHERE p.id = pv.product_id AND pv.position=(SELECT MIN(position) FROM s_variants WHERE (stock>0 OR stock IS NULL) AND product_id=p.id LIMIT 1) LIMIT 1)DESC
					 LIMIT 0, 150;

Или вот этот, с пугающим значением Rows_examined

 

# Time: 160318 13:26:07
# User@Host: r[r] @ localhost []
# Thread_id: 17388  Schema: r  QC_hit: No
# Query_time: 0.049616  Lock_time: 0.000179  Rows_sent: 24  Rows_examined: 19005
SET timestamp=1458289567;
SELECT  
					p.id,
					p.url,
					p.brand_id,
					p.name,
					p.yandex_name,					
					p.annotation,
					p.body,
					p.bodyniz,
					p.bodyunderbutton,
					p.video,
					p.no_active_product,
					p.position,
					p.created as created,
					p.visible,
					p.yandex,
					p.tiu,
					p.freelance_status,
					p.featured, 
					p.meta_title, 
					p.meta_keywords, 
					p.meta_description, 
					b.name as brand,
					b.url as brand_url
				FROM s_products p   
				 
				LEFT JOIN s_brands b ON p.brand_id = b.id
				, s_variants v 
				WHERE 
					1
					
					
					
					 AND p.id=v.product_id AND (v.sku LIKE "%%" OR p.name LIKE "%%" OR p.meta_keywords LIKE "%%")  AND p.id=v.product_id AND (v.sku LIKE "%Карапуз-5А%" OR p.name LIKE "%Карапуз-5А%" OR p.meta_keywords LIKE "%Карапуз-5А%")  AND p.id=v.product_id AND (v.sku LIKE "%%" OR p.name LIKE "%%" OR p.meta_keywords LIKE "%%") 
					
					
					
					
					
					
					
					AND p.visible=1
					
				
				ORDER BY (SELECT p.position FROM s_variants pv WHERE p.id = pv.product_id AND pv.position=(SELECT MIN(position) FROM s_variants WHERE (stock>0 OR stock IS NULL) AND product_id=p.id LIMIT 1) LIMIT 1)DESC
					 LIMIT 0, 200;

Какие то запросы висят, блокируют таблицу и пишут кеш в гигабайты! Что за запросы, понять я не могу.

 

Прошу вашей помощи! Предоставлю любые листинги чего угодно. Если хотите денег за помощь - говорите, за мной не заржавеет.

Ссылка на сообщение
Поделиться на другие сайты

Судя по второму запросу, у Вас в скрипте в логике есть ошибка. Во всяком случае, этот запрос скорее всего и подвешивает Вашу систему...

Могу попробовать выяснить и поправить. Обращайтесь...

Ссылка на сообщение
Поделиться на другие сайты

Уберите 

AND p.id=v.product_id 

из цикла перебора слов для поиска.

 

и сделайте  вместо 

 ,s_variants v
LEFT JOIN s_variants as v ON (p.id=v.product_id)

PS: Код формирования запроса - не знаю. Поэтому привел примеры исходя из показанных запросов

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...