Passer au contenu

L’union des outils de cache pour PHP fait leur force

La dernière version de PHP accepte les solutions de cache dont la majorité peut être utilisée gratuitement.

Avec plus de six millions de domaines internet qui l’utilisent ?” soit près de un serveur web sur quatre dans le monde ?”, PHP est le serveur d’applications en licence libre le plus répandu dans le monde. Les raisons de son succès tiennent en grande partie à la réécriture complète du moteur de PHP 4.0 par l’équipe de Zend.

Stocker intelligemment le code précompilé

La nouvelle architecture fonctionne désormais un peu comme un serveur d’applications Java. La totalité du code source d’un script est d’abord précompilée, puis, dans un second temps, exécutée. Ainsi, lorsqu’une page est demandée pour la première fois, PHP charge le code source en mémoire, il le compile en “op code”, puis il l’exécute. Le second accès peut alors être accéléré si l’on stocke intelligemment le code précompilé. C’est là tout l’intérêt des solutions de cache additionnelles. Une première catégorie de caches exploite la nouvelle fonctionnalité de PHP 4 : l'”output buffering”, qui permet de rediriger la sortie d’un script vers un écran, un fichier, etc. Les outils tels que PHP Cache ou JPcache se contentent, en fait, de recalculer la page en fonction d’une temporisation (“time-out”) définie par le webmestre. Primaire, ce mécanisme s’avère très efficace pour les pages d’accueil des sites qui évoluent peu. D’autant que JPcache compresse également les pages avant de les envoyer au client. Il peut ainsi économiser jusqu’à 80% de bande passante lors du téléchargement de pages volumineuses. Malheureusement, tous les navigateurs ne supportent pas encore ce type de fonctionnalité. Cependant, selon Tim Perdue, bien connu de la communauté PHP, “sur une plate-forme LAMP(1), le goulet d’étranglement se situe surtout au niveau de l’exécution du code, ainsi que des requêtes vers la base de données”. L’autre catégorie d’outils précompile donc le code source pour qu’il n’y ait plus qu’à l’exécuter en fonction des appels des utilisateurs. Deux versions d’Alternative PHP Cache (APC) coexistent : la première est développée par Community Connect, et la seconde par Bware Technologies. De son côté, Zend Cache est développé par l’équipe qui s’est chargée du moteur de PHP 4.0. C’est, en toute logique, le produit le plus performant, mais aussi le seul à être payant. Il coûte tout de même entre 1875 et 9000 dollars par processeur.

Cent requêtes simultanées

Si l’offre est clairement organisée sur un plan technique, le choix entre l’une des deux solutions n’est pas évident. Pour y voir plus clair et apporter sa contribution à la communauté PHP, le fondateur de PHPIndex.com, Armel Fauveau ?” également responsable technique de Globalis Media Systems ?” a mesuré l’impact de ces outils utilisés ensemble ou individuellement. L’étude peut être librement téléchargée sur diverses communautés PHP, dont PHPIndex.com(2). Il a ensuite testé les associations de caches les plus efficaces. Le résultat de son étude est sans appel: l’utilisation conjointe de PHP4, Zend Cache et de JPcache peut multiplier par six la charge supportée par la même configuration matérielle. Alors qu’un simple serveur d’applications PHP 3.0 plafonne autour de vingt requêtes par seconde entre cinq et cinquante utilisateurs, le trio précédent permet d’atteindre jusqu’à cent requêtes simultanées. Une autre étude menée par Techmetrix montre que, au-delà de cent cinquante utilisateurs simultanés, un serveur PHP 4.0 commence à générer des erreurs. La mise en ?”uvre d’un cache est donc aussi un excellent moyen pour fiabiliser les transactions sur les sites à fort trafic.

(1) LAMP : Linux ?” Apache ?” MySQL ?” PHP: configuration de serveur web constituée d’offres issues du logiciel libre.
(2) L’étude librement téléchargeable sur le site www.phpindex.com/

🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.


Frédéric Bordage