@egoranisimov

Почему может быть куча sleep запросов пока не дам отдохнуть mysql пару минут?

Всем привет!

Странная проблема, не могу разобраться. Есть проект с постоянной нагрузкой от пользователей, периодически в processlist'е появляется пару тысяч пустых запросов в статусе sleep до момента, пока не поставлю небольшую задержку через redis (просто не даю делать более N запросов в N времени). Так даю проекту постоять пару минут, дальше возвращаю всё как было и ему снова хорошо на протяжении полудня/дня. В чём может быть проблема, куда можно смотреть? Ощущение, будто запросы набиваются в очередь и он отходит только когда дам пузырю сдуться.

На скриншоте, например, таким моментом стал бекап бд в 5 утра. (НО это происходит и посреди дня, например. Просто как пример) Бекап уже закончился, но было несколько тысяч подвисших запросов. Они длятся примерно 10-20 сек, завершаются и набиваются новые.
5f45d8b31f9a3777579996.png
  • Вопрос задан
  • 125 просмотров
Решения вопроса 1
@vitaly_il1
DevOps Consulting
Во-первых, бэкап на продакшен не должен вешать сервер.
Два варианта - или запускайте его на slave, используйте снепшоты, или хотя бы
"mysqldump --single-transaction".
В целом я не вижу проблемы с сервером. Интересно посмотреть "slow queries" graph перед 5:00 и после, без спайка. И вообще проанализировать и начать оптимизировать slow queries.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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