Me pregunto si es posible cambiarlo innodb_buffer_pool_size
sobre la marcha.
Parece que el grupo de buffer se ha sobreasignado en mi servidor y ahora se está intercambiando. Cambié este valor en el servidor esclavo, reinicié el demonio MySQL y todo se ve bien ahora; sin embargo, no puedo desconectar el servidor maestro.
No estoy seguro de poder al menos vaciar el búfer inndb para liberar algo de memoria.
# 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
Respuesta1
Me pregunto si es posible cambiar innodb_buffer_pool_size sobre la marcha.
No puedes.innodb_buffer_pool_size
no es una variable dinámica.
No estoy seguro de poder al menos vaciar el búfer inndb para liberar algo de memoria.
Solución de problemas de uso de memoria MySQLpuede ser útil.
Respuesta2
En MySQL 5.7 ahora es posible modificar el tamaño de innodb_buffer_pool sobre la marcha de forma dinámica:
15.4.3.2 Configuración del tamaño del grupo de búfer de InnoDB
El nuevo tamaño de la piscina debe ser múltiplo de:
innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances
o utilizará el siguiente múltiplo más alto, si se establece en un número no válido.