Après l’installation de Nginx en reverse proxy avec Apache, j’ai également installé eAccelerator par dessus PHP5. Le tutoriel utilisé est celui-ci : Integrating eAccelerator Into PHP5 (Debian Etch). Attention : depuis que l’article a été écrit, la version de eAccelerator a évolué. La dernière stable est la 0.9.6, donc le chemin de wget est désormais :
wget http://bart.eaccelerator.net/source/0.9.6/eaccelerator-0.9.6.tar.bz2
Pour le reste, je n’ai eu absolument aucune différence dans l’installation par rapport à celle présentée ici (notez par ailleurs que l’installation de php5-dev m’a permit d’utiliser phpize, donc veillez à ne pas « oublier » une commande parmi d’autres).
Eaccelerator, qu’est-ce que c’est ? Si je traduis Wikipédia, voilà ce que cela donne :
eAccelerator est un accélérateur pour PHP dérivé l’extension MMCache pour PHP. eAccelerator fournit un cache pour le bytecode. eAccelerator estopensource et donc est gratuit pour toute utilisation et redistribution. Les vieilles versions non-maintenues fournissaient égaleement un encodeur.
A chaque fois qu’un script PHP est exécuté, PHP parse et compile les scripts vers du bytecode. Une fois installé, eAccelerator optimise le bytecode compilé et le mets en cache sur la RAM ou sur le disque dur. [Suite].
Pour ce qui m’intéresse (les performances de deuxieme-serveur.fr), voilà la comparaison :
L’ancienne configuration était celle-ci :
coucou:~# ab -n 200 -c 5 deuxieme-serveur.fr This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0 Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Copyright 2006 The Apache Software Foundation, http://www.apache.org/ Benchmarking deuxieme-serveur.fr (be patient) Completed 100 requests Finished 200 requests Server Software: nginx/0.5.33 Server Hostname: deuxieme-serveur.fr Server Port: 80 Document Path: / Document Length: 4813 bytes Concurrency Level: 5 Time taken for tests: 3.885465 seconds Complete requests: 200 Failed requests: 195 (Connect: 0, Length: 195, Exceptions: 0) Write errors: 0 Total transferred: 1031170 bytes HTML transferred: 966500 bytes Requests per second: 51.47 [#/sec] (mean) Time per request: 97.137 [ms] (mean) Time per request: 19.427 [ms] (mean, across all concurrent requests) Transfer rate: 259.17 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 1 9.8 0 98 Processing: 10 95 266.8 55 1832 Waiting: 9 69 263.1 26 1797 Total: 10 96 274.9 55 1890 Percentage of the requests served within a certain time (ms) 50% 55 66% 59 75% 62 80% 64 90% 71 95% 79 98% 1794 99% 1832 100% 1890 (longest request)
La nouvelle donne ceci :
coucou# ab -n 200 -c 5 deuxieme-serveur.fr This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0 Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Copyright 2006 The Apache Software Foundation, http://www.apache.org/ Benchmarking deuxieme-serveur.fr (be patient) Completed 100 requests Finished 200 requests Server Software: nginx/0.5.33 Server Hostname: deuxieme-serveur.fr Server Port: 80 Document Path: / Document Length: 4833 bytes Concurrency Level: 5 Time taken for tests: 0.530858 seconds Complete requests: 200 Failed requests: 0 Write errors: 0 Total transferred: 1031600 bytes HTML transferred: 966600 bytes Requests per second: 376.75 [#/sec] (mean) Time per request: 13.271 [ms] (mean) Time per request: 2.654 [ms] (mean, across all concurrent requests) Transfer rate: 1896.93 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 1 5.8 0 52 Processing: 2 11 10.2 11 142 Waiting: 0 3 8.5 2 119 Total: 4 12 12.1 11 142 Percentage of the requests served within a certain time (ms) 50% 11 66% 12 75% 12 80% 12 90% 14 95% 19 98% 60 99% 60 100% 142 (longest request)
Test du blog hébergé sur deuxieme-serveur.fr
La page d’accueil
Pour continuer les tests que j’ai fait dans le précédent billet, voilà ce que j’obtiens désormais :
- Fichier HTML : 225ms de latence,
- Premier CSS : 98ms de latence,
- Premier PNG : 90ms de latence.
Pour la page Readme.html (déjà générée, sans PHP, mais on observe quand même des différences) :
- Total : 394ms
- readme.html : 4ms de latence, 137ms de download
- install.css : 236ms de latence, 4ms de download
- wordpress-logo.png : 225ms de latence, 28ms de download
Donc par rapport aux précédents tests, j’en conclu que l’installation de eAccelerator a eu pour effet de réduire les temps pour le traitement des fichiers générés, mais pas pour ceux qui sont statiques.
Ta conclusion est tout a fait normal car comme tu l’indique dans la traduction de Wikipédia « eAccelerator fournit un cache pour le bytecode »
Donc optimisation du « bytecode » des fichiers PHP générés et non des pages statiques HTML.
@Insolite du Geek: Oui, c’est sûr 😉
Je pense qu’il serait intéressant de mesurer les performances en combinant eAccelerator avec un outil de cache de page statiques (ex. WP Super Cache pour WordPress).
@Insolite du Geek: C’est le cas là, wp-super-cache était installé.
Maintenant, ce que je vais faire, c’est comparer le chargement sans wp-super-cache d’activé avec celui quand il est activé.
Pour Info Faster WP Super Cache avec nginx
@Insolite du Geek: Ah merci, j’avais trouvé autre chose, mais pas celui-là, qui répond à certaines questions auxquelles je n’avais pas trouvé de réponse.
Ah non, en fait j’avais mal lu, l’article que tu donnes fournis les même réponses que le paragraphe correspondant du billet de Papygeek.
Mes besoins sont un peu différents, je vais en parler dans un autre billet.