Dans la série performance, nous avons récemment vu qu’il était possible de donner un véritable coup de boost à WordPress en utilisant des technologies côté serveur, avec, entre autre, la mise en place du serveur web Nginx.
Néanmoins, Nginx reste encore réservé aux plus geeks d’entre nous, de plus, ce dernier ne sait pas lire les instructions du fichier htaccess, ce qui rend sa mise en œuvre encore un peu plus compliqué, voir hasardeuse pour le plus grand nombre.
Actuellement, c’est donc le serveur Apache qui est le plus usité sur la toile. Si les ressources ne manquent pas pour comprendre son utilisation, il n’est pas toujours évident d’ajuster les performances de ce dernier.
A ce titre, j’ai découvert qu’il existait deux versions d’apache. La première, la plus classique, qui se nomme mpm-prefork ne donne pas le meilleur en terme de performance. La seconde, nommée pmp-worker est en revanche vivement conseillée pour obtenir un serveur puissant, sans sacrifier la stabilité. Alors, forcément, lorsque j’ai entrepris de remonter un nouveau serveur pour 4h18, j’ai décidé d’installer cette dernière version.
La nouvelle configuration
- OS : Ubuntu 10.10 (Image Gandi, installation mode Expert)
- Serveur web Apache 2 mpm-worker
- Systèmes de cache : APC et Memcached
- PHP : Version 5 – Php-fpm
- Proxy Reverse : Varnish
- WordPress + W3 Total Cahce
Varnish, parlons en. Que cela soit avec Nginx ou avec Apache, Varnish est véritablement une merveille et donne des résultats sensationnel !
AB Test, les résultats du test
ab sans varnish
Requests per second: 460.18 [#/sec] (mean)
Time per request: 10.865 [ms] (mean)
Time per request: 2.173 [ms] (mean, across all concurrent requests)
ab avec varnish
Requests per second: 4003.57 [#/sec] (mean)
Time per request: 1.249 [ms] (mean)
Time per request: 0.250 [ms] (mean, across all concurrent requests)
Un vrai gain de puissance
Comme vous le constatez, le nombre de requête que le serveur est capable de traiter avec Varnish activé est simplement décuplé. Et les incidences ne se font pas attendre. Les résultats avec YSlow prennent tout de suite une mailleure gueule. Le site 4h18 qui obtenait un grade D passe en grade B. Je n’obtient pas le A en raison des multiples appels à des fichiers Javascript externes (Facebook, Twitter, Google, LinkedIn et consort).
Éliminer les scripts externes ?
Au passage, on notera que l’emploi de ces scripts pose de réels problème en terme d’optimisation de nos sites. D’un côté, il nous est demandé d’optimiser nos pages pour un meilleur confort de surf, un meilleur référencement, et de l’autre, on nous sert des JS lourd à souhait, hébergés sur des serveurs sur-saturés. Cherché l’erreur. La solution, brutale, serait sans doute de se passer de ces services.
Néanmoins, en utilisant un système de cache sur WordPress, comme W3 Total Cache, il est possible de limiter l’impact de ces fichiers. Mais ce n’est pas encore ça.
Le cache WordPress : Rustine ou coup de boost ?
D’ailleurs, le temps que j’y suis,si vous utilisez un cache comme W3 Total Cache sur un serveur non optimisé, ne vous attendez pas à des miracles. Votre site continuera de ramer. Certes, vos pages seront servies un peu plus vite, mais de là à parler d’optimisation, il est un pas que je ne franchirais pas. Dans ce cas là, il est plus question de rustine sur une chambre à air déjà bien percée.
Quelles sont les conclusions ?
D’abord, il n’y a pas de secret, si vous souhaitez avoir une machine capable de donner des hautes performances, il va vous falloir mettre la main au porte monnaie. Exit le serveur mutualisé. Pour notre plus grand bonheur, les technologies Hardware ont fait un grand bond et il n’est plus besoin de s’équiper d’un serveur dédié hors de prix pour obtenir une bonne machine.
Passage en caisse
Gandi, par exemple, propose une architecture à moindre coût qui va vous permettre de tirer le meilleur de votre WordPress. Dans mon cas, j’ai donc un serveur 1 part avec un module de mémoire supplémentaire, soit un total de 512 Mo de Ram. Cela pourrait sembler peu, pourtant, avec une bonne optimisation logiciel, cette machine peut encaisser un bon nombre de visiteurs. Et si le trafic venait à exploser, il est possible d’ajouter des modules « à chaud » au serveur. Actuellement, cette architecture me coûte 16 euros par mois. Elle est donc amortie par la présence de publicité Adsense sur le site.
Du temps, du net et Twitter
Ensuite, si comme moi vous n’êtes pas un administrateur système dans l’âme, armez vous de patience. Il vous faudra des heures et des heures avant d’obtenir ce que vous souhaitez. Mais vous ne serez pas seul. Le net regorge de tutos, et Twitter peut être d’une aide précieuse. Dans mon cas, j’ai eu la chance d’avoir un bon coup de plusieurs followers. J’en profite pour les remercier. Je ne les nomment pas ici, histoire que leur compte ne devienne pas un support en ligne pour débutants en mode panique
Un projet murement réfléchis
Avant de vous lancer tête baissée dans la création d’un site WordPress, je ne saurais trop vous conseiller de bien penser votre projet en amont. Les objectifs de votre site vont avoir une incidence direct sur le choix de la machine qui va héberger votre site. Faites le bon choix d’entrée, vous vous éviterez bien des tracas par la suite.
Là dessus, je vous souhaite bien du courage. Mais le résultat en vaut la peine.
Amusez-vous bien !
Annexe
Les ressources que j’ai utilisées
- Documentation Apache (fr)
- Installer un serveur performant (fr)
URL courte : http://4h18.com/boost