"Подвисание" InnoDB srv_master_thread()

MadMike

Новичок
"Подвисание" InnoDB srv_master_thread()

Иногда на одном из MySQL-серверов наблюдаю следующее:
InnoDB перестает отвечать на любые запросы (при этом коннекты и запросы accept'ятся, но висят в processlist'е).
InnoDB master thread показывает статусы "flushing log", "making checkpoint", "doing insert buffer merge", "flushing buffer pool pages", "purging", "waiting for buffer pool flush to end" по очереди, порядок я не запоминал.
Сервак очень нагруженный, порядка 3-5 тысяч запросов в секунду в пике. Селектов процентов 60, инсертов/апдейтов/делетов примерно поровну.
Существует мнение, что такое поведение связано вот с чем:
При резком уменьшении нагрузки (в коде есть коммент, что это происходит при "less than 5 i/os during the one second sleep") srv_master_thread() решает flush'ить логи и пр. При этом ставит mutex и перестает отвечать на запросы. Естественно, при этом количество io/s уменьшается (логи сбрасываются в один поток и есть еще какие-то причины, которых я пока не понял), и этот процесс идет до конца - пока не сбросятся все логи.
Естественно, такое поведение мне не очень нравится, так что если кто сталкивался с такой ситуацией - напишите, плиз, как вы решали такой трабл, буду благодарен. Гугль и пр. результатов не дали :(
Да, mysql-4.1.15-standart@x86_64. Ни на каких других серверах проблема не появляется и не воспроизводится, видимо, недостаточно нагрузки.
 
Сверху