Изменение innodb_buffer_pool_size на лету

Изменение innodb_buffer_pool_size на лету

Мне интересно, можно ли менять это 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

решение1

Мне интересно, можно ли изменить innodb_buffer_pool_size «на лету».

Ты не можешь.innodb_buffer_pool_sizeне является динамической переменной.

Я не уверен, могу ли я хотя бы очистить буфер inndb, чтобы освободить немного памяти?

Устранение неполадок использования памяти MySQLможет быть полезно.

решение2

В MySQL 5.7 теперь можно динамически изменять размер innodb_buffer_pool «на лету»:

15.4.3.2 Настройка размера пула буферов InnoDB

Новый размер пула должен быть кратен:

innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances

или будет использовать следующий наибольший множитель, если задано недопустимое число.

Связанный контент