2012-08-20

Bonjour,

Je suis passé en hébergement Premium avec sql privé 256 Mo de Ram
Le passage en production avec le sql privé se révèle très lent voir bloquant sur la partie Administration du site avec des connexions réinitialisées.

Je cherche à optimiser le fichier de configuration my.cnf Ma base est en MyISAM
Pour l'instant à partir du fichier par défaut, j'ai désactivé Innodb, et augmenté la taille du key_buffer_size de 10 à 64 Mo. Je mets en place une tache pour optimiser les tables fragmentées, suppressions des index à cardinalité faible

Je cherche à optimiser les autres paramètres à partir de l'analyseur de stats
qui donne :

*Vérification de l'utilisation mémoire*
Total des Buffers mémoire: 83.0M fixe + 2.9M par connexion (75 connexions simultanées maximum)
Consommation maximum possible de mémoire: 298.6M (116% de la RAM de votre SqlPrivé)
Consommation Maximum constatée dans le passé : 166.4M (64% de la RAM de votre SqlPrivé)

*check slow queries*
Nombres de requêtes lentes: 0% (6/3M)

*Vérification des connexions*
Nombre maximum d'utilisateurs simultanés: 38% (29/75)

*Vérification du buffer de clé (Gestion des index)*
Taille du Key Buffer / total MyISAM indexes: 68.0M/20.9M
Taux de Réussite du Key Buffer: 99.9% (14M cached / 17K reads)
Tout est bon

*Vérification des caches de requêtes*
Efficacité du cache de requêtes: 56.2% (2M mis en cache / 3M selects)
Nombre de cache prunes par jour : 32890117
Tout est bon

*Vérification des tris des colonnes*
Tris necessitant une table temporaire: 0% (308. tris temp / 185K tris)

*Vérification des jointures*
Aucune jointure n'a été effectuée sans index

*Vérification des tables temporaires*
Tables temporaires crées sur le disque: 17% (486 sur disque / 2K au total)

*Vérification de la mise en cache des threads*
Taux de réussite des Thread cache: 96% (188 crées / 5K connections)

*Vérification de la mise en cache des tables*
Taux de succès de mise en cache de tables: 68% (200 open / 291 opened)

*Vérification des pointeurs de fichier (Open Files)*
Limite Open file déjà atteinte: 40% (367/900)

*Vérification du verouillage des tables*
Verrouillage de table effectué immédiatement : 99%
(1M verrouillages immédiats / 1M verrouillages)

Mon fichier my.cnf

[mysqld]

tmp_table_size=5M
query_cache_size=10M
thread_cache_size=5
max_connections=75
open_files_limit=900

skip-locking
key_buffer_size = 64M
max_allowed_packet = 1M
table_cache = 300
sort_buffer_size = 1M
join_buffer_size = 1M
read_buffer_size = 512K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 128K

max_binlog_cache_size = 1M
max_join_size = 12M
max_seeks_for_key = 2M
max_write_lock_count = 512K
myisam_max_sort_file_size = 1M

########################
##Configuration Innodb##
##Uncomment the next line to disable Innodb

skip-innodb

innodb_buffer_pool_size = 16M
innodb_additional_mem_pool_size = 2M

innodb_log_file_size = 10M
innodb_log_buffer_size = 4M

innodb_flush_log_at_trx_commit=1

skip-name-resolve

Je me demande si le fait d'être en Mysam sur un sql privé est une bonne idée.
Voilà, ça urge bien évidemment ! Merci pour votre aide.

Cordialement
Luc

Show more