增加 InnoDB 缓冲池大小

增加 InnoDB 缓冲池大小

我在设置 MySql InnoDB 的缓冲池大小和日志文件大小时遇到​​了困难。我远不是 MySql 专家,但我一直在阅读,似乎要改变这种情况,我只需将这些行添加到我的 /etc/mysql/my.cnf 中

# Set buffer pool size to 50-80% of your computer's memory
innodb_buffer_pool_size=2048M
innodb_additional_mem_pool_size=512M
#
# Set the log file size to about 25% of the buffer pool size
innodb_log_file_size=256M
innodb_log_buffer_size=128M

该服务器大约有 7GB 的内存,并且还运行着一个 Web 服务器,所以我认为这些数字应该是一个不错的起点。但是,在保存并重新启动服务器后,更改似乎并未生效。我尝试运行 Mysqltuner,它报告缓冲池仍为 16.0M。知道我做错了什么吗?如果您想查看更多配置文件,请告诉我。谢谢!

答案1

确保这些行位于该[mysqld]部分内,即在任何其他行之后[mysqld]但在任何其他行之前,[section]例如[mysqldump]

答案2

检查 MySQL 错误日志以获取信息 - 最有可能位于/var/lib/mysql- 另外,这是具有 bigmem 内核的 32 位系统吗?如果是,则您无法为 MySQL 处理超过 2GB 的内存。

另外,您需要从 MySQL 本身确认缓冲池大小 - 16MB 听起来有点不对,考虑到默认是 128M。您可以通过在该服务器的 MySQL 会话中输入“SHOW VARIABLES LIKE 'innodb_buffer_pool_size'”来确认这一点。结果以字节为单位。

答案3

就我而言,问题是innodb_buffer_pool_instances

由于我正在减少innodb_buffer_pool_size,所以每个实例变为少于 1GB,所以最终将其四舍五入。

当我还减少了实例,它最终改变了池大小

答案4

可能是您使用 --no-defaults 或 (-no-defaults) 启动 mysql,这会导致它根本不加载配置。还有 --defaults-file(或 -default-file,不确定),这会导致它加载特定配置。还要检查该配置是否与您编辑的配置不同。

您可以尝试从以下开始:

--innodb_buffer_pool_size=2048M --innodb_log_buffer_size=512M

或者检查您已经开始使用的参数,看看其中一个参数是否导致它省略配置。

相关内容