mardi 17 février 2009

Optimisation de la consommation CPU de mon serveur Dedibox

serveur_dedibox.gif

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 :

optimisation_cpu.png

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 ;-)

mardi 2 septembre 2008

CPU vs GPU

jeudi 20 décembre 2007

The Laure Manaudou nue : l'effet du phoque

Je ne pensais pas que la photo du phoque aurait autant d'effet sur le nombre de visiteurs :

laure_manaudou_effect.jpg

Et voici les répercutions au niveau du CPU de ma Dédibox, des méchants pics d'activité aux heures des pauses :

cpu_server.png

Impréssionnant !

Je vais arrêter de parler de High-tech et de trucs geek, je vais me lancer dans des vrais sujets de discussion qui intéressent tout le monde. Des sujets philosophiques, des vrais !

Non je blague, même si mes sujets n'intéressent que moi et bien je continuerai de bloguer ;-)

dimanche 29 juillet 2007

Serveur Geeek.org : 100% de CPU consommé ...

$top

 PID       USER      PR   NI  VIRT    RES    SHR  S %CPU %MEM    TIME+  COMMAND
17875 mysql     15   0  169m  26m  4032 S 46.1  5.5 648:58.54 mysqld
18123 apache    16   0  303m  68m  13m S 19.3 14.5     1:03.92 apache2
17922 apache    18   0  303m  64m 9116 S 18.7 13.7     1:01.01 apache2
17920 apache    18   0  300m  69m  16m S 16.1 14.7     1:15.18 apache2

Ce qui donne du :

  • 50 % de CPU pour MySQL
  • 50 % de CPU pour Apache

Le petit Celeron 2,4 Ghz ne va plus être assez suffisant pour supporter la charge :-) Un petit upgrade de RAM serait peut être utile pour faire grossir le cache de MySQL.