Optimisation de la consommation CPU de mon serveur Dedibox
Depuis quelques jours, je me suis lancé dans une phase d'optimisation de la consommation CPU de ma Dédibox et voici le résultat :
Comme vous pouvez le constater, le résultat est plutôt positif. Depuis le 14 février, la consommation CPU moyenne de mon serveur est descendue aux alentours de 7%. Les pics d'activité ne se font plus du tout ressentir sur le CPU du serveur.
J'utilise déjà un cache mémoire au niveau de mon blog qui me permet cacher les pages HTML afin d'éviter de les régénérer à chaque nouveau visiteur. Ce cache mémoire me permet d'économiser beaucoup de CPU, la plupart des pages délivrées par Dotclear sont en fait des pages déjà générées et gardées en mémoire par APC.
Mes optimisations de ces derniers jours ont portés sur 4 points :
-
Le tuning de la base MySQL : J'ai utilisé le fameux script d'optimisation qui m'a donné pas mal de bons conseils sur les options à modifier dans ma configuration MySQL afin d'optimiser les performances de ma base, notamment sur les options du Query Cache.
-
La suppression des snaps dans les commentaires et remplacement par des Gravatars : les billets qui possèdent 230 commentaires sont très problématiques, ils augmentent le nombre de hits HTTP et dégradent inexorablement les performances du serveur. A chaque commentaire une requête HTTP de chargement de l'avatar était réalisée, pour un article qui possède 230 commentaires, 231 requêtes HTTP sont envoyées pour charger l'ensemble du contenu de la page. J'ai donc décidé de déléguer aux serveurs Gravatar la gestion des avatars des commentaires sur mon blog.
-
La modification des plugins qui utilisent le script "load_plugin_file.php" pour le chargement des ressources statiques. Je préfère déléguer le chargement des ressources statiques des plugins à Lighttpd, cela me permet d'économiser mon pool de threads PHP et donc d'économiser du CPU. J'ai donc modifié le plugin "lightbox" et "atReply" pour mes besoins.
-
La suppression dans mon thème des tags "EntryNext" et "EntryPrevious" dont les requêtes SQL sont assez gourmandes en CPU (surtout si votre blog contient beaucoup d'articles). Aujourd'hui, il n'existe pas vraiment de solution simple pour optimiser ces deux requêtes, j'ai donc préféré supprimer ces tags de mon thème en attendant de trouver une solution plus performante.
Avec cette Dédibox et ces modifications, je devrai pouvoir monter facilement à 50 000 pages vues par jour sachant que serveur délivre aujourd'hui autour de 5000 pages par jour.
Il ne me reste qu'à attendre le prochain gros buzz pour vérifier cette théorie ;-)