2010-11-25 3 views
2

Mon serveur Mysql est lourdement chargé, maintenant une moyenne de 300 qps.Mysql Abaissement de l'utilisation du processeur par buffering

Il utilise% 50 Cpu en moyenne et seulement 700 Mo de RAM. Mon serveur a 8 Go et il a plus de 3 Go gratuit. Le journal de requête lente semble correct. Il y en a très peu et pas de fréquents.

Je veux être sûr qu'il retourne les résultats mis en cache et ne touche pas le disque inutilement.

Je pense que le système d'exploitation Linux met en cache le fichier innodb, mais puis-je avoir confiance en cela? Et y a-t-il une bonne pratique pour réduire l'utilisation de l'unité centrale par la mise en mémoire tampon ou la mise en cache?

innodb_buffer_pool_size a la valeur par défaut. (8mb)

J'ai des tables Innodb, MyIsam et Memory mélangées.

Voici une sortie d'un script tuner

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 

Répondre

1

Puisque vous avez 3Go libre, augmenter votre innodb_buffer_pool_size pour tenir votre ensemble de ces données InnoDB (données + index). Donnez-lui un 1G afin qu'il ait un peu de place pour la respiration.

Vous ne le regretterez pas. :)

+0

J'ai fait comme vous l'avez dit. Nous verrons les effets pendant l'heure de pointe :) Mais il reste "innodb_flush_method = O_DIRECT". Je vais le tester plus tard. – faraklit

Questions connexes