Gostaria de saber se é possível alterar o innodb_buffer_pool_size
instantaneamente.
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_size
nã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.