2010-11-25 50 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