我一直在使用MySQLTuner来优化我的数据库,我唯一的问题是:
[!!]最大可能的内存使用量:14.8G(已安装内存的126%)
我不知道我应该改变什么,以便在我的12G内存下做到这一点。 我有一个有110个表格,1000万行(相当快速增长)和平均250个在线用户的数据库。 我my.cnf看起来像:
query_cache_limit = 1M
- AB失败的请求 – 我能做些什么呢?
- SQL Server 2008优化
- 在BIOS中禁用内存模块用于testing目的(优化Nehalem / Gulftown内存性能)
- 编译主要服务以获得性能增益
- 你应该在哪里做广域网优化?
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_packet的= 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。