Ускоряем MySQL с помощью tmpfs
Автор Алексей | HiTex.BY на 28 января 2016 13:18
|
|
Tmpfs — временное файловое хранилище во многих Unix подобных операционных системах. Tmpfs пердназначена для монтирования файловой системы, а сама размещается в оперативной памяти вместо физического диска. Использование tmpfs в вашей системе можно увидеть с помощью вывода команды df -h /dev/sda 30G 925M 28G 4% tmpfs 502M 0 502M 0% /lib/init/rw udev 497M 60K 497M 1% /dev tmpfs 502M 4,0K 502M 1% /dev/shm В tmpfs могут размещатся любые директории, хранящие временные данные и которые можно удалить при перезагрузке системы: /var/lock, /var/run, /tmp и др. Tmpfs используют для уменьшения количества дисковых операций io c целью повышения производительности системы или экономии ресурса твердотельных накопителей. В процессе работы базы данных MySQL создаются временные таблицы. Место расположения временных таблиц определяется переменной tmpdir в файле /etc/mysql/my.cnf. Если для таких временных таблиц (файлов) не хватает памяти, то начинается активный i/o, создающий нагрузку на дисковую подсистему сервера. А смонтировав папку временных файлов mysql на tmpfs, мы решим проблему проблему производительности базы данных и системы в целом. На достаточно новых ядрах к директории /dev/shm по умолчанию подмонтирована файловая система tmpfs размером 0,5 объёма физической памяти, которую можно использовать для своих нужд. Если на вашем сервере дело с tmpfs обстоит именно так, нам остается внести правки файл конфигурации MySQL: $ nano /etc/mysql/my.cnf Закомментировав предыдущее значение параметра tmpdir, добавляем: tmpdir = /dev/shm Перезапускаем базу данных mysql: $ service mysql restart Проверяем полученный результат: $ mysql mysql> SHOW VARIABLES LIKE 'tmpdir'; +---------------+----------+ | Variable_name | Value | +---------------+----------+ | tmpdir | /dev/shm | +---------------+----------+ 1 row in set (0.00 sec) | |
|