У нас есть приложение SaaS на основе Java, работающее в базе данных MySQL на 2 ГБ Linux VPS.
Недавно мы добавили оперативную память к серверу, и через пару дней MySQL использует 99% ресурсов ЦП. Мы совершенно не понимаем, почему это происходит.
Мы внесли некоторые изменения в файл my.cnf, о чем читали на некоторых форумах. Мы расширили ресурсы для MySQL.
Куда мы можем пойти дальше?
Скорее всего, у вас много «дорогих» запросов - например, полное сканирование таблицы. Данные, вероятно, умещаются в памяти, но процессор занят обработкой их содержимого. Попробуйте предложить медленное ведение журнала запросов и используйте команду объяснения, чтобы понять, что именно mysql делает с этими запросами.
чек этот презентация. Попробуйте следующие инструменты анализа журналов:
Вы можете включить Журнал медленных запросов MySQL чтобы увидеть, есть ли у вас изнурительные запросы, выполняемые на сервере, по умолчанию это будет регистрировать любой запрос, выполнение которого занимает больше 1 секунды.
Так же Профайлер MySQL должно быть полезно для определения того, что вызывает большую нагрузку на сервер.