Задавайте вопросы, мы ответим
Вы не зашли.
MySQL постоянно что-то пишет на диск. В iotop выводится процесс mysqld. Пишет с постоянной скоростью 7.84 K/s. Как выключаю сайт - база перестает писать.
Включил general log, там запросы только на выборку и обновление счетчиков у новостей. Пробовал с отключенным сайтом пробивать эти запросы - записи не происходит. Также перевел таблицы в memory, - тоже не помогло. На сайте в среднем 3 подключения к базе в секунду. Включаю - снова что-то пишет со скоростью 7.84 K/s. Логи выключены.
У меня только один вариант - что-то не попадает в general log... Подскажите что можно сделать?
Неактивен
В general log должно попадать все, но general log тоже пишется на диск. Если innodb, то какое значение flush_log_at_trx_commit?
Неактивен
innodb_flush_log_at_trx_commit = 2
Запись по файлам:
write у файла: /tmp/#sql_e12_0.MYI 0.000581
pwrite файлов: /mysql/ib_logfile0 0.137940 - вот он похоже виновник
/mysql/ibdata1 0.001165
/tmp/#sql_e12_0.MYD 0.001058
Неактивен
ibdata1, ib_logfile - значит идет запись в таблицы Innodb, /tmp/#sql_e12_0.MYD - временная таблица MyISAM
Неактивен
А что он туда пишет? Можно сделать чтобы не писал?
Неактивен
Значит идут апдейты к таблицам Innodb и создание временных таблиц MyISAM. Возможно, какие-то запросы тяжелые и требуют создания временных таблиц на диске.
Неактивен
Что случится если заблокировать запись в этот файл? У меня у каждой таблицы свой файл, зачем мне еще ibdata1? Он весит 780 мегабайт, я могу его удалить?
Неактивен
У Вас innodb_file_per_table? Даже есть так, общая структура innodb хранится в idbata. Если его удалите, потеряете все таблицы innodb.
Попробуйте перевести все в MyISAM, тогда по файлам будет понятнее что происходит.
Неактивен
Оказывается, оптимизатор MySQL для своей работы может создавать внутренние временные таблицы. До версии 5.7 это MEMORY/MyISAM, с 5.7 - MyISAM заменяется на InnoDB
http://mysqlserverteam.com/mysql-5-7-in … ic-tables/
Неактивен