Konfigurace MySQL parametru innodb buffer pool size

Z Wiki PCiNET 08 spol. s r.o.
Skočit na navigaci Skočit na vyhledávání

Hodnota innodb_buffer_pool_size je hodnota, která nám určuje velikost vyrovnávací paměti pro databázový server. Měla by být vypočítávána z velikosti RAM v serveru a její příliš nízká hodnota má za následek zpomalení aplikací, jelikož se data načítají z disku a ne z mezipaměti z RAM.

V našem případě má server 16GB RAM a optimální hodnota by měla být cca 75% velikosti RAM, což nám dává nastavení innodb_buffer_pool_size=12GB.

Velikost lze zjistit po přihlášení do DB v konzoli příkazem mysql -u root -p a zadáním hesla

SELECT @@innodb_buffer_pool_size/1024/1024/1024;

Změnu lze provést dvěma způsoby.

Dočasná změna:

Lze parametr změnit po přihlášení do mysql databáze příkazem mysql -u root -p a zadáním hesla.

Po restartu mysql nebo systému se hodnota vrátí na původních 128MB.

mysql> SET GLOBAL innodb_buffer_pool_size=12288000000;

Trvalá změna:

Zápisem parametru do konfiguračního souboru /etc/my.cnf a to pod [mysqld], bez toho to nefunguje.

<[mysqld]

innodb_buffer_pool_size = 12G

Po restartu mysql se změna projeví a hned je vidět, že je využito více RAM a systém neswapuje.

Úprava funguje i pro MariaDB v 10.5.18 (otestováno)