29 Mar

Upgrader en PHP 7 sur Debian

PHP 7 vient de sortir en décembre dernier et promet des gains importants de performance. La tentation étant trop forte, j’ai upgradé mon serveur durant le week-end. Et effectivement, sur WordPress, pas besoin de tests pour sentir la différence.

Ce post va donc expliquer comment migrer de manière assez « safe » son serveur Debian vers cette nouvelle version de PHP en s’appuyant sur les packages mis à disposition par Dotdeb. Lire la suite

10 Juin

Test en Charge de son Serveur Web

Je viens de tomber sur LoadImpact, un site sympa pour tester en charge son serveur web. La version gratuite mise à disposition est bien sûr limitée, mais elle permet déjà de se faire une idée. Le résultat complet est disponible en ligne et c’était l’occasion de voir la solidité de mes optimisations.

Résultat d'un test Load Imapct sur ce blog
Malheureusement, sans s’enregistrer et/ou payer il n’est pas possible de monter la charge ou de mener des tests plus fins. Mais j’ai pu constater que :

  • le site encaisse sans soucis 50 clients actifs simultanés/li>
  • les temps de chargements des utilisateurs restent plats à 300ms
  • la charge cpu de Nginx et php-fpm (mesurée avec htop) n’a jamais dépassé 1%

Nginx peut donc certainement encore encaisser une charge très supérieure. Vu le trafic de mon blog, j’ai de quoi voir venir !

21 Mai

Optimiser PHP avec Zend Opcache

Zend Opcache (ex Zend Optimizer+) est un accélérateur PHP et il fonctionne plutôt bien. Comment ? Il faut savoir que les scripts PHP doivent être compilés en PHP bytecode à chaque exécution, et on constate pour cette raison des temps de réponse de l’ordre de 500ms sur un back-end PHP faisant tourner un WordPress. Zend Opcache stocke et optimise ce code compilé pour une ré-utilisation ultérieure. Et il est plutôt performant.

Zend Opcache est compatible avec PHP depuis la version 5.2 et y est même intégré depuis la 5.5. Malheureusement il n’est pas disponible sur Debian (Wheezy en 7.5) à l’heure actuelle. Alors comment faire ?
Lire la suite

15 Mai

Optimiser WordPress avec NGINX et W3 Total Cache – Fin

Suite à l’article précédent, on dispose maintenant, grâce aux mécanismes de cache de W3 Total Cache (W3TC), d’un site WordPress relativement bien optimisé et résistant aux pannes PHP/MySQL. Il ne reste plus maintenant qu’à précharger ce cache afin qu’une version de chaque page y soit déjà présente à chaque nouvelle visite. Ce point est particulièrement important avec les paramètres « Inline CSS minification » et « Inline JS minification » qui assomment le CPU avec, sur ce blog, 6 à 8s pour générer la page d’accueil.
Lire la suite

13 Mai

Optimiser WordPress avec NGINX et W3 Total Cache – Suite

Ce post continue le précédent sur l’optimisation de WordPress avec Nginx et W3 Total Cache (W3TC). Après avoir passé une configuration standard et vérifié le bon paramétrage de la compression Gzip, il est temps de passer à la configuration de W3TC. Est-il besoin de rappeler que c’est le bon moment pour réaliser un back-up de la de données? A priori les opérations suivantes sont sans danger, mais on ne sait jamais.
Lire la suite

10 Mai

Optimiser WordPress avec NGINX et W3 Total Cache – Intro

WordPress est un outil de blog très populaire, mais il faut le reconnaître tel quel, il est très consommateur de ressource. L’affichage des pages est abominablement lent même sur un site à faible trafic sur un serveur robuste. Ce post va donc présenter des optimisations très efficaces qui permettront à la fois de descendre à un affichage de pages sous la demi-seconde et de permettre à votre serveur d’encaisser un trafic plus important. Je me sers ici de W3 Total Cache (W3TC) qui est assez bon, on peut lui préférer WP Super Cache, pourquoi pas, mais la configuration de Nginx sera différente.

Environnement

OS : Debian 7.5 stable (Wheezy) (64bits)
Nginx : nginx/1.6.0
PHP : 5.5.12-1 avec Zend Engine v2.4.0 et Zend OPcache v7.0.4
W3 Total Cache : Version 0.9.4 avec les paramètres suivants

  • Page Cache – Disk Enhanced
  • Minify – Disk ou Désactivé (le Minify peut massacrer des thèmes mal codés)
  • Database Cache – Memcache ou Alternative PHP Cache (APC)
  • Object Cache – Memcache ou Alternative PHP Cache (APC)
  • Browser Cache – Désactivé (on laisse Nginx le gérer)

Lire la suite