Optimisation : fail , revert impossible
Bonjour, j'ai eu l'idée saugrenue de vouloir optimiser mon serveur MySQL (5.5, Debian) vu que je suis passé de 32G à 64G de RAM.
Visiblement ce fut une très mauvaise idée car depuis mes requêtes sont horriblement lentes (CPU à 100%) et restaurer le my.cnf dans son état d'origine n'a rien changé ! Ni même rebooter le serveur (oui j'ai vraiment tout essayé …) Du coup je ne comprends pas.
Concrètement j'ai 2 bases, une Innodb d'environ 400Mo et une MyISAM d'environ 1.5Go. J'ai joué avec les variables suivantes (avant il y avait juste les valeurs par défaut):
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
slow_query_log=1
slow_query_log_file=/var/log/mysql/mysql-slow.log
long_query_time = 2
innodb_buffer_pool_size=4G
tmp_table_size = 256M
max_heap_table_size = 256M
join_buffer_size = 32M
query_cache_limit = 10M
query_cache_size = 100M
key_buffer_size = 256M |
Ensuite j'ai redémarré le service et pendant les premières heures tout allait bien. Puis les performances se sont rapidement dégradées alors que le serveur ne swap pas ! J'ai pu constater que c'était le CPU qui limitait certaines (grosses) requêtes : ces dernières prenaient 2s avant "optimisation", elles prennent maintenant quasiment 1 minute. Même après avoir restauré le fichier de conf dans son état d'origine et redémarré le serveur.
Précisions :
- Certaines requêtes font des jointures entre les deux bases
- les requêtes qui n'utilisent que la base innodb sont aussi touchées (base Redmine, avant elles n'avaient aucun soucis)
- mysqlcheck me donne "OK" partout
- les recommandations de mysqltuner n'ont rien changé
Voilà, si quelqu'un a une idée … Je vous remercie d'avance.