Мне интересно, можно ли изменить innodb_buffer_pool_size
на лету.
Похоже, буферный пул на моем сервере был выделен больше, и теперь он меняет местами. Я изменил это значение на подчиненном сервере, перезапустил демон MySQL, и теперь все выглядит нормально, однако я не могу отключить главный сервер
Я не уверен, смогу ли я хотя бы очистить буфер inndb, чтобы освободить немного памяти?
# 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
В MySQL 5.7 теперь можно динамически изменять размер innodb_buffer_pool на лету:
15.4.3.2 Настройка размера пула буферов InnoDB
Новый размер пула должен быть кратен:
innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances
или будет использовать следующее по величине кратное, если установлено недопустимое число.
Мне интересно, можно ли изменить innodb_buffer_pool_size на лету.
Вы не можете. innodb_buffer_pool_size
не является динамической переменной.
Я не уверен, смогу ли я хотя бы очистить буфер inndb, чтобы освободить немного памяти?
Устранение неполадок с использованием памяти MySQL может быть полезно.