Загадочное поведение slow.log

123 4
K
На сайте с 24.03.2004
Offline
223
#11
Interitus:

б) Если в my.cnf прописан log-long-format - то slow считаются все запросы, не использующие index lookup по первой таблице джойна, вне зависимости от фактического времени, затраченного на обслуживание запроса.

оно уже deprecated и надо см. --log-queries-not-using-indexes

Interitus:

2) а) Один тик mytop - это не одна секудна, а пять по дефолту. long_query_time округляется вверх - то есть таковыми считаются все запросы от 4 секунд и более.

mytop использует вывод show full processlist, что само по себе можно повторять руками... более того, оно написано на perl, что само по себе вносит большую погрешность.

Interitus:

3) mysqladmin status - это задокументированная ошибка в mysqladmin/mysqld:
http://bugs.mysql.com/bug.php?id=18669
Она была исправлена в июньском релизе ветки 5.0, в 5.1 ее похоже вообще забыли закоммитить - за малозначимостью.

Закомичено.

PS. А вот закомичено ли оно у Сергея не ясно...

проверенная ддос защита (http://ddos-protection.ru) -> http://ddos-protection.ru (http://ddos-protection.ru), бесплатный тест, цена от размера атаки не зависит.
Sergey Petrenko
На сайте с 23.10.2000
Offline
482
#12
Interitus:
Если в slow log не пишется - значит просто эта опция не включа (а она по умолчанию не включена). Чтобы включить - нужно в /etc/my.cnf вписать директиву log-slow-queries

И ты туда же. Да включена эта опция, включена. И права доступа на файл тут не причем. За две недели работы mysql исправно записал в него штук семь записей о рестартах плюс два сообщения о действительно медленных запросах.

У нас есть гипотеза, что такое странное поведение может быть связано с включением persistent connections в движке форума и пересборке mysql с поддержкой lib_thr.

Interitus:
Один тик mytop - это не одна секудна, а пять по дефолту. long_query_time округляется вверх - то есть таковыми считаются все запросы от 4 секунд и более.

Про дефолт не знаю, но обновляется список процессов явно быстрее.

Interitus:
Если в my.cnf прописан log-long-format - то slow считаются все запросы, не использующие index lookup по первой таблице джойна, вне зависимости от фактического времени, затраченного на обслуживание запроса.

Прописан. Ты хочешь сказать, что такие запросы срабатывают счетчик, но не будут писаться в лог?

Sergey Petrenko
На сайте с 23.10.2000
Offline
482
#13
kostich:
оно уже deprecated и надо см. --log-queries-not-using-indexes

Да, пардон, именно так написано.

kostich:
А вот закомичено ли оно у Сергея не ясно...

Ну, я версию привел - собирали, кажется, из свежих портов две недели назад.

K
На сайте с 24.03.2004
Offline
223
#14
Gray:
Ну, я версию привел - собирали, кажется, из свежих портов две недели назад.

Сергей, ну опять двадцать пять... давай my.cnf студию и ls -l от логфайла и из-под кого mysql запускаем... плюс grep -i slow из главного лога... и стартап параметры его надо бы посмотреть.

PS. Тогда дружно скажем ВИНАВАТ MYSQL 😂

[Удален]
#15
Gray:
И ты туда же. Да включена эта опция, включена. И права доступа на файл тут не причем. За две недели работы mysql исправно записал в него штук семь записей о рестартах плюс два сообщения о действительно медленных запросах.

А это уже странно - надо смотреть my.cnf и если действительно попахивает багой - lsof и сабмитить багрепорт.

Разработчики в районе 4.1.10 - забили на поддержку FreeBSD, так что могут вылезти самые любые глюки. Хотя у меня лично mysqld 5-й версии на FreeBSD 6-й версии вполне хороше пишет slow query log.

У нас есть гипотеза, что такое странное поведение может быть связано с включением persistent connections в движке форума и пересборке mysql с поддержкой lib_thr.

Вряд ли - для lib_thr вообще пересобирать не надо - это параметр динамической линковки. Persistent тоже по идее влиять не должен... хотя если реально баг - то может.


Прописан. Ты хочешь сказать, что такие запросы срабатывают счетчик, но не будут писаться в лог?

В лог пишется либо все либо ничего - так что если обычные медленные запросы учитываются и пишутся в лог - то и безиндексные обязаны.

Но скорее всего в my.cnf что-то не так...

Sergey Petrenko
На сайте с 23.10.2000
Offline
482
#16

Ну, вот вам my.cnf - полагаю, что секции mysqld вам хватит:

skip-locking
key_buffer = 512M
join_buffer = 8M
myisam_recover = BACKUP,FORCE
max_allowed_packet = 4M
table_cache = 1024
sort_buffer_size = 32M
net_buffer_length = 64K
read_buffer_size = 16M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
long_query_time = 5
log-long-format
log-queries-not-using-indexes
log-slow-queries
key_cache_division_limit=80
query_cache_type = 1
query_cache_size = 32M
thread_cache_size = 32
max_delayed_threads = 0
#delay_key_write = ALL
max_seeks_for_key = 100
tmp_table_size = 128M
default-character-set = cp1251
skip-character-set-client-handshake
max_connections = 512
skip-bdb
skip-innodb
skip-name-resolve
skip-log-warnings
#log-bin=mysql-bin
#log-update=mysql-log
server-id = 1
max_connect_errors = 2000000
K
На сайте с 24.03.2004
Offline
223
#17
Gray:
Ну, вот вам my.cnf - полагаю, что секции mysqld вам хватит:

А права на директорию?

5.1.6, enable the slow query log file with the --log-slow-queries[=file_name] option. If no file_name value is given, the default is the name of the host machine with a suffix of -slow.log. If a filename is given, but not as an absolute pathname, the server writes the file in the data directory.

Может пишет в `hostname`-slow.log?

PS. ls -l *.log 😂

Sergey Petrenko
На сайте с 23.10.2000
Offline
482
#18
kostich:
ls -l *.log

-rw-rw---- 1 mysql mysql 2591 Oct 8 01:11 slow.log

[Удален]
#19
kostich:

Может пишет в `hostname`-slow.log?

Если шапку сумел записать в файл, и как Сергей сказал - еще и несколько фактических запросов сумел - то прав хватает.

[Удален]
#20
Gray:
Ну, вот вам my.cnf - полагаю, что секции mysqld вам хватит:

Похоже бага. Надо постараться локализовать и засабмитить им в багзиллу.

Прежде всего - посмотреть lsof - а открыл ли он файл нужный?

123 4

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