Мне интересно, можно ли менять это 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
или будет использовать следующий наибольший множитель, если задано недопустимое число.