Всем привет. Пожалуйста, помогите мне с вопросом.
Моя основная проблема заключается в том, что mysql очень медленный. Когда я пытаюсь создать продукты в своей CMS, это занимает много времени. Пример - создание продукта 4 мин, удалить продукт - 12 мин.
Я использую CMS Magento 2.2 CE. Также есть 145 000 продуктов. Прежде чем мы добавили продукты, все было в порядке. Создание продукта - 5 секунд, удаление продукта около 5-10 секунд.
Вот моя система
Ubuntu 14 x64, Linux kernel 3.13, 16 cpu, SSD, 48 GB RAM
Percona MySQL - 5.6 - конфиг - https://pastebin.com/TVu1Ed7c
Varnish server 4.1
PHP 7.0.22
Nginx 1.12
Redis Server 4.0.2
Я пытаюсь запустить профилирующие тесты magento и mysql
slow log results - https://pastebin.com/kbFw0F28
Пример медленного запроса - https://pastebin.com/mi656h2h
Когда запускаю mysqltuner.pl результат - everything is OK.
если на моем сайте 60 реальных пользователей, я вижу, что процесс mysql занимает очень много ресурсов процессора. В качестве примера у меня есть сайт на той же CMS с 100 продуктами и более низким сервером и он спокойно держит около 500 пользователей и чувствует себя нормально.
Подскажите мне с этой проблемой. Спасибо.
Сервер свой, Ubuntu 16.04, Xeon, 16Gb, PHP7.2, Apache последний, примерно 300 000 товаров, товары все простые, такого как у Вас ничего не замечено.
Запрос вроде обычный. Сколько он у вас выполняется и сколько результатов возвращает?
Для начала стоит проверить базу данных на наличие ключей в таблицах.
Ещё можно глянуть, какие именно ключи использует база при запросе. Пишете перед запросом
EXPLAIN тут ваш запрос
и смотрите. Может что яснее станет.
Как долго этот запрос (без EXPLAIN) выполняется?
примерно 40 мс
40 мс для запроса не так и плохо. Это не 2-3 минуты, как я подумал из вашего первого сообщения.
Или вы привели в пример не проблемный запрос.
Как вариант - тормозит у вас реиндексация. Попробуйте поменять тип реиндекса с "при сохранении" на "по крону".
В общем чтобы что-то посоветовать, надо найти причину проблемы.