Problème de performance sur le serveur MySQL de SPIP (1.9.2c)
Bonjour,
Nous rencontrons de grosses difficultés sur le serveur MySQL de SPIP pour la publication d’un Intranet. Les informations sont les suivantes :
Symptômes :
– Le site Intranet n’est plus accessible (timeout au niveau du navigateur).
– Tous les threads apaches sont occupés (en attente de réponse SQL).
– Le serveur MySQL est à 100% de consommation CPU sur les 8 coeurs.
En analysant les journaux de logs MySQL, on s’apperçoit qu’il y a énormément de requêtes de mise à jour : 2 300 000 requêtes (update, delete, create) pour une période de 60 heures (soit 43 000 requêtes de modification / heure).
Une analyse plus précise fait ressortir la requête suivante comme la grande gagnante avec 1 700 000 apparitions :
UPDATE spip_diplonet
.spip_rubriques
SET statut_tmp=’publie’, date_tmp=’2009-06-03 10:27:26’
WHERE id_rubrique=x ;
Les questions sont les suivantes :
– Est-il normal qu’il y ait autant de requêtes de mise à jour sur la base ?
– Et est-il normal qu’il y ait autant de requêtes de mise à jour sur les rubriques ?
– Y a-t-il un moyen de limiter le nombre de requêtes SQL ?
Volumétrie :
– 15 000 articles
– 20 000 pages
– 26 000 documents
– 1500 rubriques
– 15 000 utilisateurs potentiels / 1000 à 1500 utilisateurs simultanés
– 20 nouveaux articles publiés / jour
Architecture basée sur 2 serveurs :
– un serveur (2 processeurs dual core + 4Go de RAM) Apache (2.2.3-4+etch11) + php (5.2.0+dfsg-8+etch16) + SPIP (1.9.2c) sur Debian Etch
– un serveur (4 processeurs dual core + 4Go de RAM) avec MySQL (5.0.32-7etch11) sur Debian Etch
Configuration :
– $derniere_modif_invalide = false ;
– durée de validité du cache à 5 minutes sur la page d’accueil et 2h sur les autres pages
– niveau d’isolation des transactions MySQL par défaut : REPEATABLE-READ
Plugins utilisés :
– Lecteur Multimédia en Flash (MP3,flv)
– Acces Restreint 2.0
– Couteau Suisse
– Diapo
– Imprimer document
– Menus deroulants
– Thickbox v2
– Nombres de visiteurs connectés
D’avance, merci pour vos réponses.
Arnaud.