Mysql通过缓冲降低CPU使用率

时间:2010-11-25 16:32:09

标签: mysql caching innodb buffering

我的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

1 个答案:

答案 0 :(得分:1)

由于您有3GB免费空间,请提升您的innodb_buffer_pool_size以保留整个innodb数据集(数据+索引)。

给它一个1G所以它有一些喘息的空间。你不会后悔的。 :)