ubuntu – 如何为mySQL分配内存限制?

前端之家收集整理的这篇文章主要介绍了ubuntu – 如何为mySQL分配内存限制?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
mysql tuner报告MysqL可以使用166%的已安装ram,我如何限制RAM的使用?

[!!] Maximum possible memory usage: 426.8M (166% of installed RAM)

你可以配置

>所有MyISAM
>所有InnoDB
> MyISAM和InnoDB的混合物

在为任一引擎分配内存之前,最好反思每个存储引擎的缓存

配置MYISAM

使用的主要机制是密钥缓存.它仅缓存来自.MYI文件的索引页面.要调整密钥缓存的大小,请运行以下查询

SELECT CONCAT(ROUND(KBS/POWER(1024,IF(PowerOf1024<0,IF(PowerOf1024>3,PowerOf1024)))+0.4999),SUBSTR(' KMG',PowerOf1024))+1,1))
recommended_key_buffer_size FROM
(SELECT LEAST(POWER(2,32),KBS1) KBS
FROM (SELECT SUM(index_length) KBS1
FROM information_schema.tables
WHERE engine='MyISAM' AND
table_schema NOT IN ('information_schema','MysqL')) AA ) A,(SELECT 2 PowerOf1024) B;

根据您当前的数据集,这将给出MyISAM密钥缓存的推荐设置(key_buffer_size)(the query will cap the recommendation at 4G (4096M).对于32位操作系统,4GB是限制.对于64位,8GB.

配置InnoDB

使用的主要机制是InnoDB缓冲池.它缓存来自InnoDB表的数据和索引页面.要调整InnoDB缓冲池的大小,PowerOf1024)))+0.49999),1)) recommended_innodb_buffer_pool_size FROM (SELECT SUM(data_length+index_length) KBS FROM information_schema.tables WHERE engine='InnoDB') A,(SELECT 2 PowerOf1024) B;

这将根据您当前的数据集给出InnoDB缓冲池(innodb_buffer_pool_size)大小的推荐设置.

不要忘记调整InnoDB日志文件(ib_logfile0和ib_logfile1)的大小. MysqL代码放置所有InnoDB日志文件的组合大小的上限必须< 4G(4096M). (注意:Percona Server二进制文件超过了这一点.我最近使用innodb_log_file_size设置了一个带有4G的大型数据库服务器,用于单个InnoDB日志文件)

为简单起见,只给出两个日志文件,以下是如何调整它们的大小:

>步骤1)将innodb_log_file_size = NNN添加到/etc/my.cnf
(NNN应为innodb_buffer_pool_size的25%或2047M,以较小者为准)
>步骤2)服务MysqL停止
>步骤3)rm / var / log / MysqL / ib_logfile [01]
>步骤4)服务MysqL start(重新创建ib_logfile0和ib_logfile1)

警告

两个查询的结尾都是一个内联查询:(SELECT 2 PowerOfTwo)B

>(SELECT 0 PowerOf1024)给出字节设置
>(SELECT 1 PowerOf1024)以千字节为单位给出设置
>(SELECT 2 PowerOf1024)以兆字节为单位给出设置
>(SELECT 3 PowerOf1024)给出以千兆字节为单位的设置
>不接受0或大于3的功率

结语

常识无可替代.如果内存有限,存储引擎混合或其组合,则必须针对不同的方案进行调整.

如果您有2GB RAM和16GB InnoDB,请将512M分配为innodb_buffer_pool_size.

如果您有2GB RAM和4GB MyISAM索引,请将512M分配为key_buffer_size.

如果您有2GB RAM和4GB MyISAM索引和16GB InnoDB,请将512M分配为key_buffer_size,将512M分配为innodb_buffer_pool_size.

可能的场景是无止境的

请记住,无论您分配什么,请为数据库连接和操作系统留出足够的RAM.

原文链接:https://www.f2er.com/ubuntu/348878.html

猜你在找的Ubuntu相关文章