Пролема с locked mysql запросами

12
mstar
На сайте с 19.12.2005
Offline
133
1550

Суть в двух словах: есть старые скрипты, которые достались по наследству от старых, скажем так "не очень квалифицированных" програмистов. Накопипастити столько, что руками найти, какой именно запрос и в каком куске сайта, прайктически нереально.

Есть проблема:

http://www.mstarproject.com/temp/locked_mysql.jpg

http://www.mstarproject.com/temp/mysql_la.jpg

Подскажите, как определить первоисточник проблемы? То есть либо запрос вызывающий такие косяки, либо причину?

Баг проявляется апериодично и не напрямую связан с кол-вом посетителей сайта. Спасибо за помощь.

Разработка сайтов (http://www.mstarproject.com/?action=tecdoc_mysql_site) - удобные веб приложения по разумной цене.
O
На сайте с 13.08.2008
Offline
26
#1

Конвертните базу в innodb - избавитесь от локов на селект.

Outsourcenow.ru: оттюним ваш веб-сервер. 100 млн. запросов в сутки - наш размерчик!
mstar
На сайте с 19.12.2005
Offline
133
#2
Outsourcenow:
Конвертните базу в innodb - избавитесь от локов на селект.

Вариант, спасибо за совет.

Может более гуманный способ есть, как найти причину таких блокировок?

O
На сайте с 13.08.2008
Offline
26
#3
mstar:
Вариант, спасибо за совет.
Может более гуманный способ есть, как найти причину таких блокировок?

А что ее искать? В процессе выполнения запроса - прилетает следующий. Никакой причины нет, нормальная работа базы.

Либо оптимизируйте запросы, посмотрев на время висения запросов в состоянии Sending data, либо оптимизируйте базу.

И - да, не смотрите вы в phpmyadmin, смотрите в show full processlist / mtop

N
На сайте с 06.05.2007
Offline
419
#4

Это ведь не все запросы? должен быть еще и запрос на обновление.

locked не является самой проблемой. это симптом неудачно реализованного обновления базы или же ручной блокировки через оператор lock table (но так реально никто не пишет. маловероятно)

Если сократите время работы обновления - исчезнут и lock-и.

Анализировать все так же : лог медленных запросов, мониторинг show processlist

Кнопка вызова админа ()
mstar
На сайте с 19.12.2005
Offline
133
#5
netwind:
Анализировать все так же : лог медленных запросов, мониторинг show processlist

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

Думал, может есть какой профайлер для майскля, который покажет источник проблемы. Или по каким-то сторонним факторам можно определить, какой из запросов виноват.

mstar добавил 26.05.2009 в 17:41

Outsourcenow:
А что ее искать? В процессе выполнения запроса - прилетает следующий. Никакой причины нет, нормальная работа базы.
Либо оптимизируйте запросы, посмотрев на время висения запросов в состоянии Sending data, либо оптимизируйте базу.

И - да, не смотрите вы в phpmyadmin, смотрите в show full processlist / mtop

Это все хорошо, когда знаешь, какой запрос оптимизировать. А когда не знаешь. Как найти запрос проблемный - вот в чем вопрос больше, чем как оптимизировать запросы.

O
На сайте с 13.08.2008
Offline
26
#6
mstar:
Это все хорошо, когда знаешь, какой запрос оптимизировать. А когда не знаешь. Как найти запрос проблемный - вот в чем вопрос больше, чем как оптимизировать запросы.

Что в mtop долго болтается - то и надо оптимизировать.

Либо включите slow-query-log, и смотрите в него.

mstar
На сайте с 19.12.2005
Offline
133
#7
Outsourcenow:
Что в mtop долго болтается - то и надо оптимизировать.
Либо включите slow-query-log, и смотрите в него.

слов лог включен, и все что там было исправлено. Остался этот апериодичный затык.

N
На сайте с 06.05.2007
Offline
419
#8

mstar, в версиях выше 5.1.21 или в специальных патчах на 5.0 миллисекундное разрешение лога медленных запросов.

mstar
На сайте с 19.12.2005
Offline
133
#9
netwind:
mstar, в версиях выше 5.1.21 или в специальных патчах на 5.0 миллисекундное разрешение лога медленных запросов.

К сожалению, Server version: 5.0.51a-log на этом сервере. Спасибо, на крайний случай будем обновляться.

N
На сайте с 06.05.2007
Offline
419
#10

А вот там у вас на картинке запрос в сессии 272956 выполняется 5 секунд. Он точно попадет в лог медленных запросов.

Возможно (но не обязательно) это и есть проблемный запрос.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий