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 :
[sourcecode language=“shell”] 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) [/sourcecode]
La nouvelle donne ceci :
[sourcecode language=“shell”] 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) [/sourcecode]
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.
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).
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.