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

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

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

我不知道我应该改变什么,以便在我的12G内存下做到这一点。 我有一个有110个表格,1000万行(相当快速增长)和平均250个在线用户的数据库。 我my.cnf看起来像:

query_cache_limit = 1M

query_cache_sizevariables= 128M

query_cache_type的= 1

MAX_USER_CONNECTIONS = 2000

MAX_CONNECTIONS = 2000

interactive_timeout = 100

WAIT_TIMEOUT = 100

connect_timeout = 100

thread_cache_size的= 128

的key_buffer = 16M

join_buffer = 1M

max_allowed_pa​​cket的= 16M

的table_cache = 15360

record_buffer = 1M

sort_buffer_size的值= 4M

read_buffer_size = 2M

max_connect_errors次= 10

thread_concurrency = 8

myisam_sort_buffer_size = 64M

服务器ID = 1

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

“实际上,典型的8GB内存服务器往往运行时理论内存使用率最高可达100GB以上。”

换句话说,除非您开始看到您的服务器交换,否则不要太担心最大可能的内存使用情况。

把你的max_connections降到200,wait_timeout降到10

在调整数据库时,您的平均“在线用户”并不是特别有意思,这是您需要考虑的最高要求。 根据您的实际需求,您可以删除任何最大连接数,sorting缓冲区大小,读取缓冲区或查询caching。 那么总是有“抛出更多的内存”的解决scheme。

max_user_connections=2000 max_connections=2000 

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