我很难设置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。 任何想法我做错了什么? 让我知道如果你想看到更多的configuration文件。 谢谢!
确保这些行在[mysqld]
部分内,即在[mysqld]
而在[mysqldump]
类的任何其他[section]
之前。
检查你的MySQL错误日志的信息 – 最有可能位于/var/lib/mysql
– 这是一个32位系统与bigmem内核? 如果是这样的话,MySQL的地址不能超过2GB。
此外 – 你会想从MySQL本身确认缓冲池的大小 – 16MB听起来有点closures,考虑到默认是128M。 您可以通过在该服务器的MySQL会话中input'SHOW VARIABLES LIKE'innodb_buffer_pool_size'来确认。 结果以字节为单位。
可能是你用–no-defaults或(-no-defaults)启动mysql,导致它根本不加载configuration。 这也是–defaults-file(或-default-file,不知道),这会导致它加载一个特定的configuration。 另外检查一下是否与你编辑的configuration不同。
你可以尝试从以下开始:
--innodb_buffer_pool_size=2048M --innodb_log_buffer_size=512M
或者已经开始使用的参数,看看其中的一个是否会导致它忽略configuration。
在我的情况下,问题是innodb_buffer_pool_instances
。
由于我正在减lessinnodb_buffer_pool_size
,所以每个实例的容量都不到1GB,所以最后四舍五入。
当我还减less了实例 ,它最终改变了游泳池的大小 !