2010-11-25 6 views
2

Mysqlサーバーの負荷が高くなりました。平均で300 qpsになりました。MysqlバッファリングによるCPU使用率の低下

平均で%50CPU、RAMはわずか700MBです。私のサーバーは8GBで、3GB以上の空き容量があります。遅いクエリのログは正常です。非常に少なく、頻繁ではありません。

キャッシュされた結果が返されていることを確認して、不要にディスクに触れないようにします。

私はLinux OSがinnodbファイルをキャッシュしていると思いますが、私はそれを信用できますか? バッファリングやキャッシュによってCPU使用率を下げる良い方法はありますか?

innodb_buffer_pool_sizeがデフォルト値に設定されています。 (8MB)

私は、Innodb、MyIsam、Memoryテーブルが混在しています。あなたは3ギガバイトは、無料の持っているので、ここで

チューナスクリプト

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

から出力され、あなたの全体のInnoDBデータセット(データ+インデックス)を保持するために、あなたのinnodb_buffer_pool_sizeを高めます。

1Gを与えて呼吸ができるようにします。あなたはそれを後悔しません。 :)

+0

あなたが言ったように私はしました。ラッシュアワー時の効果を見ることができます:)しかし、 "innodb_flush_method = O_DIRECT"が残っています。私は後でそれをテストします。 – faraklit