tmpdir выносим в RAM

Бывают запросы к MySQL, которые превышают установленное значение max_allowed_packet. В следствии чего в /tmp начинает создаваться временный файл. Это плохо в том случае если таких запросов может быть много, из-за чего повышается нагрузка на винчестер и на сервер в целом. Чтобы немного убавить нагрузку на винчестер, дабы не отвлекать винт лишний раз, можно разместить tmpdir в оперативке.

Для этого проделаем следующие действия:

mkdir /mysqltmp
chown mysql:mysql /mysqltmp
id mysql
vi /etc/fstab

Примечание: использовать uid и gid полученный от команды выше.

Редактируем /etc/fstab. Добавляем такую строку:
tmpfs /mysqltmp tmpfs rw,uid=102,gid=105,size=2G,nr_inodes=10k,mode=0700 0 0


size=2G — задается относительно установленного объема RAM. К примеру, если на сервере есть 16Gb, можно задать 2G. Объем все равно не резервируется, при надобности освобождаются кеши из памяти.

mount /mysqltmp
 vi /etc/my.cnf  или же /var/lib/mysql/my.cnf

Примечание: Добавить в файл после [mysqld]
tmpdir=/mysqltmp/
service mysql restart

Опубликовано в MySQL

Рубрики