动态更改 innodb_buffer_pool_size

HTF*_*HTF 0 mysql innodb

我想知道是否可以即时更改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
Run Code Online (Sandbox Code Playgroud)

小智 11

在 MySQL 5.7 中,现在可以动态修改 innodb_buffer_pool 大小:

15.4.3.2 配置 InnoDB 缓冲池大小

新池大小必须是以下各项的倍数:

innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances
Run Code Online (Sandbox Code Playgroud)

或将使用下一个最高倍数,如果设置为无效数字。