Важно Увеличиваем производительность innodb

baltun

Администратор
Сообщения
10.890
Реакции
2.594
Баллы
2.003
Как всем известно форум Xenforo работает с таблицами InnoDB и для того, чтобы форум работал быстрее требуется настроить MySQL соответствующим образом.

InnoDB — одна из выбираемых подсистем низкого уровня в СУБД MySQL, входит во все стандартные сборки для различных операционных систем. Основным отличием InnoDB от других подсистем низкого уровня MySQL является наличие механизма транзакций и внешних ключей.

Чтобы сделать изменения конфигурации базы, заходим под root и выполняем:
Код:
service mysqld stop
Переходим по пути /etc/my.cnf и вносим изменения пример:
Код:
innodb_buffer_pool_size = 384M
innodb_additional_mem_pool_size = 20M
# Set .._log_file_size to 25 % of buffer pool size
innodb_log_file_size = 50M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 2
innodb_fast_shutdown = 0

Если у вас уже работала база с настройками по умолчанию, после изменения innodb_log_file_size (по умолчанию который 5мб), требуется переименовать старые логи.
Код:
mv /var/lib/mysql/ib_logfile0 /var/lib/mysql/ib_logfile0_old
mv /var/lib/mysql/ib_logfile1 /var/lib/mysql/ib_logfile1_old

Запускаем MySQL.
Код:
service mysqld start
Если все работает нормально и нет ошибок в логах, останавливаем сервер
Код:
service mysqld stop

И запускам сервер снова с закомментированной строкой innodb_fast_shutdown = 0.
Код:
innodb_buffer_pool_size = 384M
innodb_additional_mem_pool_size = 20M
# Set .._log_file_size to 25 % of buffer pool size
innodb_log_file_size = 50M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 2
#innodb_fast_shutdown = 0

Примерная конфигурация для сервера с 16Гб памятью.
Код:
key_buffer_size = 16M
innodb_buffer_pool_instances = 4
innodb_buffer_pool_size = 4G
innodb_additional_mem_pool_size = 20M
innodb_log_file_size = 1G
innodb_flush_log_at_trx_commit = 2

Значение innodb_buffer_pool_instances зависит от количества оперативной памяти выделяемой для innodb_buffer_pool_size. В идеале 1 инстанция на 1 гигабайт оперативной памяти.

Важно: При изменении параметров в журнале не должно быть ошибок после остановки базы, в противном случае все изменения только усугубят ошибки. Желательно сразу делать все правильно и настраивать сразу все параметры, а не частями, иначе могут появляться ошибки и база MySQL не будет стартовать. Перед изменениями сделайте копию всех файлов.
 
Последнее редактирование:
Назад
Верх Низ