降低最大可能的内存使用量

降低最大可能的内存使用量

我一直在使用 MySQLTuner 来优化我的数据库,我遇到的唯一问题是:

[!!] 最大可能的内存使用量:14.8G(已安装 RAM 的 126%)

我不确定我应该做哪些更改才能将其降低到 12G RAM 以下。我有一个包含 110 个表、10,000,000 行(增长相当快)的数据库,平均有 250 个在线用户。我的 my.cnf 如下所示:

查询缓存限制=1M

查询缓存大小=128M

查询缓存类型=1

最大用户连接数=2000

最大连接数=2000

interactive_timeout=100

等待超时=100

连接超时=100

线程缓存大小=128

密钥缓冲区=16M

连接缓冲区=1M

最大允许数据包=16M

表缓存=15360

记录缓冲区=1M

排序缓冲区大小=4M

读取缓冲区大小=2M

最大连接错误=10

线程并发=8

myisam_sort_buffer_size=64M

服务器 ID=1

答案1

MySQL 的内存使用情况很难预测。我建议看看http://www.mysqlperformanceblog.com/2006/05/17/mysql-server-memory-usage/它介绍了安装中哪些内容正在使用内存。但总结一下:

“事实上,具有 8GB 内存的典型服务器通常的最大理论内存使用量为 100GB 或更多。”

或者换句话说,除非您开始看到服务器交换,否则不要过于担心最大可能内存使用量。

答案2

将 max_connections 降低至 200,将 wait_timeout 降低至 10

答案3

在调整数据库时,平均“在线用户”并不是特别重要,您需要考虑的是峰值请求。根据您的实际需求,您可以删除任何最大连接数、排序缓冲区大小、读取缓冲区或查询缓存。然后总是有“投入更多内存”的解决方案。

答案4

max_user_connections=2000
max_connections=2000

可以大大降低这些来调整您的 MySQL。

相关内容