Alterando innodb_buffer_pool_size instantaneamente

Alterando innodb_buffer_pool_size instantaneamente

Gostaria de saber se é possível alterar o innodb_buffer_pool_sizeinstantaneamente.

Parece que o buffer pool foi superalocado no meu servidor e está sendo trocado agora. Alterei esse valor no servidor escravo, reiniciei o daemon MySQL e tudo parece bem agora - porém não consigo colocar o servidor mestre offline

Não tenho certeza se posso pelo menos liberar o buffer inndb para liberar memória.

# ps aux --sort -vsz | head -n2
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
mysql     2064 14.6 93.8 17369060 15328044 ?   Sl   Jul22 7096:48 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/log/mysql/mysql-error.log --pid-file=/var/lib/mysql/mysql.pid --socket=/var/lib/mysql/mysql.sock --port=3306

# free -m
                 total       used       free     shared    buffers     cached
    Mem:         15949      15786        163          0          4        104
    -/+ buffers/cache:      15677        272
Swap:         4095        346       3749

Responder1

Estou me perguntando se é possível alterar o innodb_buffer_pool_size instantaneamente.

Você não pode.innodb_buffer_pool_sizenão é uma variável dinâmica.

Não tenho certeza se posso pelo menos liberar o buffer inndb para liberar memória.

Solução de problemas de uso de memória MySQLpode ser útil.

Responder2

No MySQL 5.7 agora é possível modificar o tamanho do innodb_buffer_pool dinamicamente:

15.4.3.2 Configurando o tamanho do buffer pool do InnoDB

O novo tamanho do pool deve ser um múltiplo de:

innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances

ou usará o próximo múltiplo mais alto, se definido como um número inválido.

informação relacionada