Оптимальная конфигурация MySQL нужна для корректной работы VMmanager. Особенно актуальна такая необходимость, если панель управления работает с большим количеством виртуальных машин. В противном случае возможны зависания и проблемы при работе панели управления с базой данных MySQL. В статье приведены рекомендации по настройке MySQL для VMmanager.
Панель управления не изменяет настройки MySQL. Конфигурация MySQL индивидуальна для серверов в зависимости от их вычислительных ресурсов и программного обеспечения, поэтому требует ручной настройки.
Конфигурационный файл серверной части MySQL расположен по пути: /etc/my.cnf.d/server.cnf.
Подсистема хранения
В качестве подсистемы хранения рекомендуем использовать InnoDB.
Рекомендации конфигурации
Приведены значения наиболее важных параметров с точки зрения оптимизации MySQL.
MySQL выделено 4GB RAM
table_open_cache = 256 # максимальное количество открытых таблиц, кэшированных в одном экземпляре кеша таблицы.
sort_buffer_size = 512K # объём памяти для буфера, который выделяет каждый сеанс, выполняющий сортировку.
net_buffer_length = 4M # начальный размер буферов соединений и потоков для каждого потока клиентов.
join_buffer_size = 256K # минимальный размер буфера для запросов, которые не могут использовать индексы и вместо этого выполняют полное сканирование таблицы.
query_cache_size = 32M # размер кэша.
query_cache_limit = 512K # максимальный размер запросов, которые сохраняются в кэш.
max_connections = 300 # максимальное количество параллельных соединений к серверу.
innodb_buffer_pool_size = 3G # размер буфера для InnoDB.
innodb_additional_mem_pool_size = 4M # размер пула памяти InnoDB, используемый для хранения информации о внутренних структурах данных.
innodb_lock_wait_timeout = 60 # время в секундах, в течение которого транзакция InnoDB ожидает блокировки строки InnoDB.
MySQL выделено 8GB RAM
table_open_cache = 512 # максимальное количество открытых таблиц, кэшированных в одном экземпляре кеша таблицы.
sort_buffer_size = 1M # объём памяти для буфера, который выделяет каждый сеанс, выполняющий сортировку.
net_buffer_length = 8M # начальный размер буферов соединений и потоков для каждого потока клиентов.
join_buffer_size = 512K # минимальный размер буфера для запросов, которые не могут использовать индексы и вместо этого выполняют полное сканирование таблицы.
query_cache_size = 32M # размер кэша.
query_cache_limit = 512K # максимальный размер запросов, которые сохраняются в кэш.
max_connections = 2000 # максимальное количество параллельных соединений к серверу.
innodb_buffer_pool_size = 4G # размер буфера для InnoDB.
innodb_additional_mem_pool_size = 4M # размер пула памяти InnoDB, используемый для хранения информации о внутренних структурах данных.
innodb_lock_wait_timeout = 60 # время в секундах, в течение которого транзакция InnoDB ожидает блокировки строки InnoDB.
MySQLTuner
MySQLTuner — скрипт, анализирующий статистику работы MySQL, и, на основе полученных данных, выдающий рекомендации по настройке. Для получения более надёжных рекомендаций нужно, чтобы MySQL сервер был запущен по крайней мере в течение 24-48 часов без изменения конфигурации. Однако даже в таком случае внимательно анализируйте рекомендации MySQLTuner.
MySQLTuner нужно установить или загрузить.
Установка MySQLTuner:
yum install mysqltuner
или загрузка:
wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.p
Во время загрузки возможна ошибка вида:
ERROR: cannot verify raw.githubusercontent.com's certificate, issued by '/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 High Assurance Server CA': Unable to locally verify the issuer's authority. To connect to raw.githubusercontent.com insecurely, use `--no-check-certificate'.
Тогда запустите загрузку с ключом --no-check-certificate:
wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.pl --no-check-certificate
Запуск MySQLTuner, если он был установлен:
mysqltuner
или
mysqltuner --user root --pass rootpassword
Запуск MySQLTuner, если он был скачан:
perl mysqltuner.pl
или
perl mysqltuner.pl --user root --pass rootpassword