Монитор загрузки MySQL

Друзья, такая ситуация — есть отдельный сервер под мускуль, на котором крутится один сайт с относительно небольшой посещаемостью(100k хитов в сутки), сайт сам по себе достаточно крупный, в нем много логики и отдельных сервисов, поэтому присутствуют и медленные запросы, при этом сервер базы спокойно живет несколько недель, пока в один момент не уходит в даун, помогает остановка веб-сервера на несколько минут, чтобы mysql завершил все запросы, после чего тот снова в строю

так вот, мой вопрос — как узнать из-за каких именно запросов(или их совокупности) сервер уходит в даун? подскажите плз средства для этого

просмотр slow query log и show proccesslist особо ничего не дает т.к. медленные запросы есть и от них никуда не деться, но ведь и с ними он прекрасно может работать месяцами
  • Вопрос задан
  • 16487 просмотров
Пригласить эксперта
Ответы на вопрос 9
julos
@julos Автор вопроса
Есть утилита mysqldumpslow которая анализует лог медленных запросов и выводит самые частые медленные запросы, жаль, раньше не знал о ней, надеюсь поможет решить хотя бы часть проблемы.
Ответ написан
Комментировать
@Jurik
Воспользуйтесь утилитой mytop.
Ответ написан
julos
@julos Автор вопроса
щас смотрю top — mysqld жрет 150-200% CPU, смотрю SHOW PROCESSLIST(и mytop) — с обновлением в секундуто проскакивает 5-10 запросов, то пусто, долго никто не висит… при этом база откровенно поттупливает даже на элементарных запросах

в чем может быть дело?
Ответ написан
Из вашего объяснения я понял что база не уходит в даун, а просто собирается большая очередь запросов?
Какого рода запросы? insert/select/update?

Посещаемость сайта имеет не большую роль в нагрузке… Все зависит от структуры базы, ее размеров, действием над данными в ней. Можно повесить mysql и одним запросом на очень долгий период.
Ответ написан
AGvin
@AGvin
www.fromdual.com/tools + Zabbix
А вообще, ранее был такой вопрос (http://habrahabr.ru/qa/10967/ )
Ответ написан
@eresik
Поищите, недавно была статья как сервер падал раз в 4 недели из-за переполнения auto_increment, может ваш случай.
Ответ написан
@lubezniy
Железо (винт или RAID, на котором крутится БД) в порядке?
Ответ написан
julos
@julos Автор вопроса
еще давний вопрос на который все руки не доходят узнать ответ

имеем запрос:
SELECT id FROM something WHERE param1 = 1 param2 = 2 param3 = 3

структура таблицы состоит только из этих 4х полей участвующих в запросе

вопрос — если структура таблицы будет состоять из 100 полей, а не 4х, будет ли выполняться медленнее указанный запрос?
Ответ написан
@shagguboy
если по этим полям есть индекс то разница будет заметна только приборами
Ответ написан
Ваш ответ на вопрос

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

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