Доброго времени суток.
Предыстория. Есть одна БД с mysql ( 5.6.13 ), у неё не всё в порядке с производительностью. Сегодня утром включил логирование всех запросов
general_log=1
general_log_file=/var/log/mysql/general.log
и перезапустил mysql. И вот тут возникла проблема
Резко увеличилось время отдачи веб-страниц, которые берут информацию из этой БД. Собрал необходимую мне информацию об sql запросах, снова отключил логирование. Но время отдачи страниц осталось прежним.
Сначала думал что это как-то связано с кэшированием данных в глубинах mysql, т.е. время возросло из-за самого факта перезапуска mysqld и текущей нагрузки, и со временем всё вернётся на круги своя. Но день прошёл, а веб-морда всё ещё тормозит. А демон, который пишет в ту же базу тоже через сеть, не испытывает проблем. Поставил профилировщик на веб-морду, увидел стабильные 20 секунд на подключение к БД.
Сильно удивился, проверил обычным консольным mysql.
$ time { echo '^D' | mysql -u zabbix -h 1.1.1.1 -p ; }
Enter password:
real 0m21.649s
user 0m0.000s
sys 0m0.000s
Зуб даю, я откатил изменение, которое делал в конфиге my.cfg для логирования. И сейчас sql в лог не пишутся. И других изменений на mysqld не делал.
Подскажите, откуда мог появиться 20 секундный таймаут на подключение к БД по сети?