Installation de eAccelerator 0.9.6

[ 7 ] Commentaires
Share

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.

Vous serez peut-être intéressé :

7 commentaires sur ce billet

  1. 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.

    RépondreRépondre
  2. Louis dit :

    @Insolite du Geek: Oui, c’est sûr 😉

    RépondreRépondre
  3. 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).

    RépondreRépondre
  4. Louis dit :

    @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é.

    RépondreRépondre
  5. Louis dit :

    @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.

    RépondreRépondre
  6. Louis dit :

    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.

    RépondreRépondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *