<div><img src="https://top-fwz1.mail.ru/counter?id=3548135;js=na" style="position:absolute;left:-9999px;" alt="Top.Mail.Ru" /></div>
Бесплатная миграция IT-инфраструктуры в облако
На главную
61c46507-12c7-4300-a301-bd8bc30c7c19
Инструкции для серверов

Ускорение работы сайта: перенос MySQL в tmpfs

Один из самых несложных способов повышения производительности сайта, который в большинстве случаев позволяет заметно ускорить его работу — это перенос временных файлов MySQL на RAM-диск. Благодаря этому работа с временными таблицами БД будет будет производиться через оперативную память вместо жесткого диска, за счет чего MySQL будет работать быстрее.

Настройка выполняется следующим образом.

  1. Создайте папку для хранения временных файлов, например, /var/lib/mysql/tmp:
mkdir /var/lib/mysql/tmp
  1. Измените владельца папки и группу на mysql:
chown mysql:mysql /var/lib/mysql/tmp
  1. Определите идентификатор пользователя (uid) и группы (gid) MySQL:
id mysql
  1. Откройте файл /etc/fstab:
nano /etc/fstab

Добавьте в него строку с указанием полученных выше значений:

tmpfs /var/lib/mysql/tmp tmpfs rw,gid=27,uid=27,size=1G,nr_inodes=10k,mode=0700 0 0

В параметре size указывается объем памяти, который будет отдан под временные файлы MySQL. Его необходимо установить в зависимости от количества имеющейся оперативной памяти на сервере.

  1. Примонтируйте новый tmpfs-раздел:
mount /var/lib/mysql/tmp
  1. Откройте файл конфигурации MySQL /etc/mysql/my.cnf (если вы используете BitrixVM, обратите внимание, что путь к файлу конфигурации отличается):
nano /etc/mysql/my.cnf
# Для BitrixVM:
nano /etc/mysql/conf.d/bvat.cnf

 В сегмент [mysqld] (если сегмента нет, добавьте его) добавьте строку:

[mysqld]
tmpdir=/var/lib/mysql/tmp
  1. Перезапустите MySQL:
systemctl restart mysqld
Была ли статья полезна?
Ваша оценка очень важна
Комментарии 2
Константин
28.11.2024, 13:41

Как проверить наличие и работу?

Timeweb Cloud
Timeweb Cloud
02.12.2024, 14:31

Добрый день!

Чтобы убедиться, что всё настроено правильно, выполните команду:

mount | grep /var/lib/mysql/tmp

Должна будет отобразиться строка, похожая на следующую:

tmpfs on /var/lib/mysql/tmp type tmpfs (rw,relatime,size=512000k,nr_inodes=10240,mode=700,uid=114,gid=119,inode64)

Также проверьте значение tmpdir в MySQL. Для этого подключитесь к MySQL и выполните команду:

SHOW VARIABLES LIKE 'tmpdir';

Для tmpdir должно быть указано значение /var/lib/mysql/tmp.

Чтобы убедиться, что служба MySQL работает, выполните команду:

systemctl status mysql

Состояние службы должно быть active (running), что подтверждает её успешный запуск и работу.