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):
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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.
Partager