====== Ускоряем MySQL при помощи tmpfs ====== ===== Зачем ===== В процессе работы MySQL время от времени создает временные таблицы, место хранения которых задается переменной tmpdir. Если таких файликов создается много (не хватает памяти или еще куча причин), то начинается активный i/o, что создает нагрузку на систему. Один из способов избежать данной проблемы - смонтировать папку временных файлов на RAM-диск, в данном случае tmpfs. ===== Правим fstab ===== Добавляем в /etc/fstab следующее # Temporary filesystem for MySQL tmpfs /dev/shm tmpfs rw,defaults,noexec,nosuid,size=512m 0 0 Размер можно изменять в параметре size Монтируем свежедобавленный раздел # mount -a ===== Правим my.cnf ===== Добавляем tmpdir = /dev/shm и закомментариваем старое значение tmpdir, перезапускаем mysqld $ sudo service mysql restart ===== Вы используете apparmor? ===== Если используется appamor, то в логах mysql будут сообщения вида /usr/sbin/mysqld: Can't create/write to file '/dev/shm/ibMoIFzB' (Errcode: 13) 120805 22:22:14 InnoDB: Error: unable to create temporary file; errno: 13 Все просто - в профиле настроек mysql запрещено писать в новое месторасположение временных файлов. Вносим изменения в файл /etc/apparmor.d/usr.sbin.mysqld, добавляем в самый конец строки так, чтобы получилось следующее: /sys/devices/system/cpu/ r, /dev/shm/** rw, } и перечитываем правила $ sudo service apparmor restart {{tag>mysql tmpfs ускоряем_mysql apparmor}}