Docker部署的MySQL 8.0.33中innodb_buffer_pool_size未按预期调整的问题求助
Docker部署的MySQL 8.0.33中innodb_buffer_pool_size未按预期调整的问题求助
各位好,我在Docker里部署了MySQL 8.0.33,服务器有8GB可用内存,最近调整缓冲池配置时碰到了个奇怪的问题,想请大家帮忙看看。
我的Docker挂载配置如下:
volumes: - ./sql:/docker-entrypoint-initdb.d - ./store:/var/lib/mysql - ./my.cnf:/etc/mysql/conf.d/mysqld.cnf
在my.cnf里我做了这些修改:
[mysqld] innodb_buffer_pool_instances=6 # 之前是4 innodb_buffer_pool_chunk_size=500M # 之前是1GB innodb_buffer_pool_size=3GB # 之前是4GB
我已经重启了两次数据库容器,并且确认容器内部的配置文件确实是我修改后的最新版本。但当我在数据库里执行查询验证时,出现了意外:
SELECT @@innodb_buffer_pool_chunk_size;返回524288000,和预期一致SELECT @@innodb_buffer_pool_instances;返回6,和预期一致- 可是
SELECT @@innodb_buffer_pool_size;却返回了6291456000(也就是6GB),这和我设置的3GB完全不符,太奇怪了!
我查了官方文档,里面提到:
如果修改了innodb_buffer_pool_chunk_size,innodb_buffer_pool_size会自动调整为等于或大于innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances的倍数的值。
我算了一下,524288000 * 6 = 3145728000,刚好就是我设置的3GB,按道理不应该被自动调整才对。有没有大佬能帮我分析下为什么实际生效的是6GB呢?另外我还准备用SHOW STATUS WHERE ...进一步排查,但目前还没找到头绪。
备注:内容来源于stack exchange,提问作者Alexey Sh.
相关产品推荐
相关产品推荐

