2010-11-25 53 views
2

我的Mysql服务器负载很重,现在平均为300psps。Mysql通过缓冲降低CPU使用率

它使用平均值为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

输出既然你有3GB免费,提高你的innodb_buffer_pool_size握住你的整个的InnoDB的数据集(数据+指数)。

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

+0

我照你说的去做了。我们将在高峰期间看到效果:)但仍有“innodb_flush_method = O_DIRECT”。我稍后会测试它。 – faraklit 2010-11-26 00:11:44