How to serve PHP

Il existe une foultitude de serveurs web, et aujourd'hui tous savent mettre à disposition PHP. Me retrouvant dans mon cadre professionnel à chercher des solutions pour gratter toujours plus de performances avec les mêmes ressources, j'ai dû comparer les différentes solutions qui s'offraient a “nous” pour distribuer du PHP par un serveur Web.

Les tests ont été réalisé sur des machines virtuelles Xen, chacune ayant été seule sur une lame d'un BladeCenter HP (QuadXeon 2.66Ghz) Chacune des machines virtuelles (une par webserver et OS) disposaient d'un Giga de Ram et de 4 CPU

Seul les tests Gentoo ont été réalisé sur une autre machine physique (mais sur un serveur virtuel Xen tout de même) séparée mais de performances équivalentes, n'ayant pas eu le temps de recopier mon “Bac a Sable” personnel, je referais probablement un jour les tests avec toute les machines au même endroit.

Les “tests” ont été réalisé avec Apache Benchmark sur du “phpinfo” qui génère et nécessite plus de ressources qu'on pourrait le penser. A raison de 10 requêtes concurrentes pour 10000 requêtes totales.

ab -n 10000 -c 10 ServeurCible/phpinfo.php

Nous avons doncs les résultats suivant :

<charter> title = PHP par serveur Web YAxisName = Secondes fontDefault = Bitstream Vera Sans@6 size = 800×600 align = center alpha = 90 bgcolor = #eeeeee type = bar labelSerie = 99 thresholds = 20, 40, 50, 135, 165, 631 legendEntries = Etch+Apache 1.3.34+ModPHP+PHP 5.2.9.dotdeb.0 (47s) , Etch+Lighttpd 1.4.13+FastCGI+PHP 5.2.9.dotdeb.0 (48s), Etch+Apache 2.2.3+MPM-Prefork+ModPHP+PHP 5.2.9.dotdeb.0 (41s), Lenny+Apache 2.2.9+MPM-PreFork+ModPHP+PHP 5.2.9.dotdeb (52s), Lenny+Apache 2.2.9+MPM-Worker+FCGId+PHP 5.2.9.dotdeb (631s), Lenny+Apache 2.2.9+MPM-Worker+FastCGI+PHP 5.2.9.dotdeb (135s), Lenny+Lighttpd 1.4.19+FastCGI+PHP 5.2.9.dotdeb (168s), Lenny+NGinx 0.6.3+FastCGI+PHP 5.2.9.dotdeb (165s), Gentoo 2008.0+Lighttpd 1.4.20+FastCGI+PHP 5.2.8 (16s), Gentoo 2008.0+Apache 2.2.10+MPM-Worker+FastCGI+PHP 5.2.8 (20s)

47 48 41 52 631 135 168 165 16 20 </charter>

Pourquoi SuPHP n'est il pas représenté ?

Tout simplement parce que les performances médiocres (minium 1346 secondes …) m'ont contraint de le retirer du graphique.

Toutefois, pour sa défense, utilisant SuPHP au quotidien, celui-ci offre le plus de performances lorsque l'on commence à l'isoler ses utilisateurs.

Et NGinx/Caudium/Cherokee sur Gentoo et Etch ?

Hélas les journées ne sont que de 24H et mon impératif premier était Lenny, impératif professionnel j'entends. Je testerais bien sûr ces 3 serveurs Web sur ces 2 plate-forme lorsque je disposerais de plus de temps (pas gagné cela dit).

Disparités des temps de réponses

Je n'ai pas encore d'explication logique sur les temps de réponse disparate que l'on peut avoir sur, par exemple, Lighttpd sur les différents OS. La compilation made in Gentoo permet d'avoir un applicatif optimisé, mais pourquoi une telle différence entre Etch et Lenny ? Je cherche encore …

Tableau Complet

Le tableau complet comparant toute les “solutions” se trouve dans ma section Wiki : How to Serve PHP : Tableau Comparatif

Discussion

Entrer votre commentaire
 
blog/how_to_serve_php.txt · Dernière modification: Friday 03 April 2009 par kathryl
Flux RSS du Blog Driven by DokuWiki Gentoo Powered Valid XHTML1.0 Powered by Apache PHP Powered Coffee Powered