我的Mysql服务器负载很重,现在平均为300 qps。
它平均使用%50 Cpu,只有700MB的RAM。我的服务器有8GB,免费超过3GB。慢查询日志似乎很好。很少而且不常见。
我想确保它返回缓存的结果,并且不会不必要地触摸磁盘。
我认为linux操作系统会缓存innodb文件,但我能相信吗? 有没有什么好的做法可以通过缓冲或缓存来降低CPU使用率?
innodb_buffer_pool_size设置为默认值。 (8MB)
我将Innodb,MyIsam和Memory表混合在一起。
以下是调谐器脚本的输出
INNODB STATUS
Current InnoDB index space = 238 M
Current InnoDB data space = 294 M
Current InnoDB buffer pool free = 0 %
Current innodb_buffer_pool_size = 8 M
KEY BUFFER
Current MyISAM index space = 113 M
Current key_buffer_size = 192 M
Key cache miss rate is 1 : 63
Key buffer free ratio = 74 %
Your key_buffer_size seems to be fine
QUERY CACHE
Query cache is enabled
Current query_cache_size = 256 M
Current query_cache_used = 19 M
Current query_cache_limit = 1 M
Current Query cache Memory fill ratio = 7.64 %
Current query_cache_min_res_unit = 4 K
Query Cache is 28 % fragmented
答案 0 :(得分:1)
由于您有3GB免费空间,请提升您的innodb_buffer_pool_size
以保留整个innodb数据集(数据+索引)。
给它一个1G所以它有一些喘息的空间。你不会后悔的。 :)