@andreyvlru
менеджер-программист

Тормоза с MySQL. Может ли это быть SSD?

Неделю назад внезапно стали появляться тормоза в обработке запросов. Временами в slow log валятся кучи запросов, которые раньше нормально отрабатывали. Анализирую один из таких затупов, увидели что тормоз начинается во время массового апдейта таблички из 240 тыс строк. Запрос оптимизировали, но раньше это все проходило гладко - без торможения всего остального, и проявляются затормозки во время выполнения и других запросов.

Сервер достаточно мощный 24 ядра и 128 Gb памяти. Сама БД целиком в памяти помещается.

Это мой первый сервер с SSD. Хочу как-то убедиться что причина не в дисках или наоборот подтвердить что это именно диски косячат. По SMART смотрели, вроде ничего критичного.

Что посоветуете?
  • Вопрос задан
  • 507 просмотров
Решения вопроса 1
@andreyvlru Автор вопроса
менеджер-программист
Все оказалось совсем не так. База не тормозила, тормозили веб-сервера

Цепочка примерно следующая
В час пик на веб серверах начинает увеличиваться время ответа. С 50-100ms до 1000-1500ms.
Каждый запрос висит дольше обычного и дольше занимает коннект к MySQL. В итоге все возможные коннекты выбираются и все упирается в max_mysql_connection

Веб-сервера хоть и работают медленнее, но все равно потихоньку шевелятся. У них количество допустимых процессов выше чем максимум коннектов к БД. В итоге мы думали что тормозит база. Там еще было некоторое количество slow запросов, но они видимо всегда были, просто пока не было ошибок мы на них внимания не обращали.

Проблему решаем следующим образом
1. Несколько перебалансировали раздачу нагрузки по веб-серверам, чтобы процессор равномернее использовался
2. Заказли еще один веб-сервер
3. Оптимизируем "тяжелые" страницы

P.S. Тем не менее TRIM на серверах бд все равно нужен и мы будем настоятельно просить инженеров хостера включить его
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
@IceJOKER
Web/Android developer
до апдейта отключаете индексы?
если нет, то при массовом апдейте нужно отключить индексы, а после окончания апдейта включаете обратно.
Ответ написан
SagePtr
@SagePtr
Еда - это святое
А система вообще знает, что этот диск SSD? TRIM он поддерживает? Без него призводительность записи может упасть, когда свободные сектора закончатся, а диск без TRIM не будет знать, какие свободны.
Ну и не писать много раз в одни и те же сектора, а делать это скопом, для SSD это критично.
Ответ написан
@MechanID
Админ хостинг провайдера
смотрите на утилизацию дисковой подсистемы,
если с дисковой проблемы то в top будет видно что много cpu wait
еще можно включить iostat -x 3 и смотреть в реалтайме нагрузку во время выполнения запросов.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы