Всем привет. Пожалуйста, помогите мне с вопросом.
Моя основная проблема заключается в том, что 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 минуты, как я подумал из вашего первого сообщения.
Или вы привели в пример не проблемный запрос.
Как вариант - тормозит у вас реиндексация. Попробуйте поменять тип реиндекса с "при сохранении" на "по крону".
В общем чтобы что-то посоветовать, надо найти причину проблемы.