J'ai récemment eu des problèmes avec le thrashing suite à un manque de mémoire. (Mon VPS a 256M au total)
J'essaie de régler MySQL en utilisant mysqltuner.pl et d'obtenir les résultats suivants:
-------- Statistiques générales ---------------------------------------- ---------- [-] Vérification de version ignorée pour le script MySQLTuner [OK] Actuellement en cours d'exécution MySQL version 5.0.51a-3ubuntu5.4 pris en charge [OK] Fonctionnant sur une architecture 64 bits -------- Statistiques du moteur de stockage --------------------------------------- ---- [-] Statut: + Archive -BDB -Federated -InnoDB -ISAM -NDBCluster [-] Données dans les tableaux MyISAM: 114M (tableaux: 454) [!!] Total des tableaux fragmentés: 34 -------- Indicateurs de performance ---------------------------------------- --------- [-] Prêt pour: 40s (570 q [14.250 qps], 23 conn, TX: 154K, RX: 23K) [-] Lectures / écritures: 100% / 0% [-] Nombre total de tampons: 338,0 millions global + 2,7 millions par thread (20 threads max) [!!] Utilisation maximale possible de la mémoire: 392,9 M (153% de la RAM installée) [OK] Requêtes lentes: 0% (5/570) [OK] Utilisation la plus élevée des connexions disponibles: 15% (3/20) [!!] Taille du tampon clé / total des index MyISAM: 8,0 M / 9,4 M [!!] Taux de réussite du tampon clé: 57,1% (7 mises en cache / 3 lectures) [OK] Efficacité du cache de requête: 21,9% (7 sélections en cache / 32 sélections) [OK] Query cache pruneaux par jour: 0 [OK] Tri nécessitant des tables temporaires: 0% (0 tri temporaire / 1 tri) [OK] Tables temporaires créées sur disque: 0% (0 sur disque / 32 au total) [OK] Taux de réussite du cache de threads: 86% (3 connexions créées / 23 connexions) [OK] Taux de réussite du cache de table: 26% (128 ouvert / 484 ouvert) [OK] Limite d'ouverture de fichiers utilisée: 25% (259 / 1K) [OK] Verrous de table acquis immédiatement: 100% (492 verrous immédiats / 492 verrous) -------- Recommandations ----------------------------------------- ------------ Recommandations générales: Exécutez OPTIMIZE TABLE pour défragmenter les tables pour de meilleures performances MySQL a démarré au cours des dernières 24 heures - les recommandations peuvent être inexactes Réduisez votre empreinte mémoire globale MySQL pour la stabilité du système Variables à ajuster: *** L'utilisation maximale de la mémoire de MySQL est dangereusement élevée *** *** Ajoutez de la RAM avant d'augmenter les variables du tampon MySQL *** key_buffer_size (> 9.4M)
Mais je suis un peu confus sur la façon de réduire l'utilisation maximale de la mémoire? Il semble être basé sur key_buffer et max_connections, mais il doit aussi y avoir autre chose impliqué?
my.cnf:
key_buffer = 8M max_allowed_packet = 12M thread_stack = 128K thread_cache_size = 8 max_connections = 20 table_cache = 128 tmp_table_size = 256M max_heap_table_size = 256M join_buffer_size = 256K query_cache_limit = 8M query_cache_size = 64M
J'ai essayé de lire les articles sur le réglage de MySQL, mais ils semblent destinés aux gens qui savent déjà ce qu'ils font! Toute aide serait appréciée. Merci!