Назад | Перейти на главную страницу

MySQL медленно, но ускоряется после сброса кешей диска

У меня очень загруженный сервер Linux MySQL с огромной базой данных.

Сервер обычно работает при средней нагрузке 2 или меньше.

На сервере есть программный рейд (mdadm), который в настоящее время восстанавливается.

Несколько раз сегодня MySQL становится медленнее, а средняя загрузка достигает 200-300-500.

При этом iostat небольшой - максимум 20-30%.

Своп в настоящее время отключен, потому что я думал, что это вызывает проблему.

Перезапуск MySQL не помогает. Если мы перезагрузим сервер, все вернется в норму на пару часов.

В прошлый раз вместо перезагрузки я решил остановить MySQL и сбросить кеши. Я сделал так:

sync; echo 1 > /proc/sys/vm/drop_caches
sync; echo 2 > /proc/sys/vm/drop_caches
sync; echo 3 > /proc/sys/vm/drop_caches

(Да, я сделал три подряд)

К моему удивлению, когда я запустил MySQL, все вернулось в норму.

В чем может быть проблема, и могу ли я как-нибудь автоматизировать «кеши», чтобы сервер не замедлился хотя бы в течение следующих нескольких дней.

После восстановления RAID мы перезапустили сервер еще раз, и все вернулось к норме.

Мы полагаем, что во время восстановления RAID Linux использовала много памяти, а серверу фактически не хватало памяти.

Ответ может быть предоставлен путем публикации на исходный вопрос следующего:
ОЗУ доступно на ХОСТЕ

SHOW GLOBAL STATUS;
SHOW GLOBAL VARIABLES;
SHOW ENGINE INNODB STATUS;