MySQL -> show debug messages
2 отговора
65 прегледа
MySQL -> show debug messages
Има ли някакъв начин MySQL да ми извади всички фази, през които преминава дадена заявка. Например за дадена SELECT заявка да ми извади колко времето за:
- парсване на заявката
- чакане таблиците да се unlock-нат (и да видя кой thread кои таблици е заключил)
- отваряне на таблицата
- disk seek в индекс файла, в data файла
- затваряне на таблицата
и т.н.
Питам, защото от една седмица MySQL почна да се държи доста странно. Една и съща заявка веднъж отнема 0.03 секунди, следващия път - 6.00 секунди...явно нещо се локва от някъде. Единствената промяна, за която се сещам, е, че минах от 4.0.13 на 4.0.16.
Everything louder than everything else...
- парсване на заявката
- чакане таблиците да се unlock-нат (и да видя кой thread кои таблици е заключил)
- отваряне на таблицата
- disk seek в индекс файла, в data файла
- затваряне на таблицата
и т.н.
Питам, защото от една седмица MySQL почна да се държи доста странно. Една и съща заявка веднъж отнема 0.03 секунди, следващия път - 6.00 секунди...явно нещо се локва от някъде. Единствената промяна, за която се сещам, е, че минах от 4.0.13 на 4.0.16.
Everything louder than everything else...
Re: MySQL -> show debug messages
Не.
Засега...
веднъж отнема 0.03 секунди, следващия път - 6.00 секунди
Обикновено става въпрос за висока конкурентност т.е. много сесии едновременно се борят да заключат таблицата (или таблиците)
SHOW PROCESSLIST;
SHOW STATUS LIKE "table_lock%";
salle.online.bg/sig
Засега...
веднъж отнема 0.03 секунди, следващия път - 6.00 секунди
Обикновено става въпрос за висока конкурентност т.е. много сесии едновременно се борят да заключат таблицата (или таблиците)
SHOW PROCESSLIST;
SHOW STATUS LIKE "table_lock%";
salle.online.bg/sig
Re: MySQL -> show debug messages
Да, очевидно нещо такова се случва.
Гнилото е, че натоварването не се е повишило кой знае колко...да речем най-много 10%, само сменихме версията и...
, не казвам, че е бъг в новата версия, но...просто голямото забавяне започна тогава, а като нямам опция за дебъг, няма как да разбера дали е от там. На 4.0.13 пък почна да crash-ва през ден...яко се натрупваха процеси...стотици в show processlist.
Иначе през 1 секунда пускам SHOW PROCESSLIST, но там рядко има състояние "Locked"...има всичко останало и доста "Copying to tmp table". Т.е. в един и същи момент зареждам страницата, която прави заявка, която трае 3-4 секунди и пускам отделно show processlist, и там няма "Locked". Това с tmp table май става при SQL_CALC_FOUND_ROWS.
А това второто не съм сигурен, че го разбирам...т.е. рабзирам какво показва, но не разбирам добре ли е или зле...знам знам, зависи
:
mysql> SHOW STATUS LIKE "table_lock%";
+-----------------------+---------+
| Variable_name | Value |
+-----------------------+---------+
| Table_locks_immediate | 4678653 |
| Table_locks_waited | 88172 |
+-----------------------+---------+
Everything louder than everything else...
Гнилото е, че натоварването не се е повишило кой знае колко...да речем най-много 10%, само сменихме версията и...
Иначе през 1 секунда пускам SHOW PROCESSLIST, но там рядко има състояние "Locked"...има всичко останало и доста "Copying to tmp table". Т.е. в един и същи момент зареждам страницата, която прави заявка, която трае 3-4 секунди и пускам отделно show processlist, и там няма "Locked". Това с tmp table май става при SQL_CALC_FOUND_ROWS.
А това второто не съм сигурен, че го разбирам...т.е. рабзирам какво показва, но не разбирам добре ли е или зле...знам знам, зависи
mysql> SHOW STATUS LIKE "table_lock%";
+-----------------------+---------+
| Variable_name | Value |
+-----------------------+---------+
| Table_locks_immediate | 4678653 |
| Table_locks_waited | 88172 |
+-----------------------+---------+
Everything louder than everything else...