Si vous avez suivi « Ubuntu 10.10 – Serveur de développement – Partie 1 », vous avez maintenant un serveur web opérationnel pour développer confortablement.
Mais est-il optimisé pour des applications web gourmandes en ressource ?
Effectuons un test simple :
Attention au slash à la fin de l’url, c’est très important, sinon ab pas content.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
administrateur@ubsrv002:~$ ab -n 100 -c 5 http://192.168.0.70/ This is ApacheBench, Version 2.3 <$Revision: 655654 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking 192.168.0.70 (be patient).....done Server Software: Apache/2.2.16 Server Hostname: 192.168.0.70 Server Port: 80 Document Path: / Document Length: 177 bytes Concurrency Level: 5 Time taken for tests: 0.095 seconds Complete requests: 100 Failed requests: 0 Write errors: 0 Total transferred: 45300 bytes HTML transferred: 17700 bytes Requests per second: 1050.71 [#/sec] (mean) Time per request: 4.759 [ms] (mean) Time per request: 0.952 [ms] (mean, across all concurrent requests) Transfer rate: 464.81 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 2 1.9 1 11 Processing: 1 3 2.3 2 15 Waiting: 0 2 2.0 1 14 Total: 1 4 3.0 3 19 Percentage of the requests served within a certain time (ms) 50% 3 66% 4 75% 5 80% 6 90% 8 95% 12 98% 15 99% 19 100% 19 (longest request) |
Les lignes suivantes sont importantes :
1 2 3 4 |
Time taken for tests: 0.095 seconds Requests per second: 1050.71 [#/sec] (mean) Time per request: 4.759 [ms] (mean) Time per request: 0.952 [ms] (mean, across all concurrent requests) |
Franchement, c’est pas mal du tout !
Essayez sur un serveur web en ligne, vous verrez la différence !
Maintenant, installons APC
La bonne méthode qui marche, trouvée sur Jan Jonas’ Blog !
L’instalaltion est plutôt longue sur un serveur faible en ressource, mais fonctionne !
1 2 |
sudo apt-get install php-pear php5-dev apache2-threaded-dev sudo pecl install apc-3.1.6 |
Aux questions suivantes, répondre « no »
- « Enable per request file info about files used from the APC cache [no] : »
- « Enable spin locks (EXPERIMENTAL) [no] : »
Les versions d’APC sont consultables ici : http://pecl.php.net/package/apc
Créer le fichier /etc/php5/conf.d/apc.ini et ajouter la ligne :
1 |
extension=apc.so |
Redémarrer apache.
1 |
sudo /etc/init.d/apache2 restart |
Relancer le test du début et comparer les résultats.
Voici les miens :
1 2 3 4 |
Time taken for tests: 0.082 seconds Requests per second: 1216.65 [#/sec] (mean) Time per request: 4.110 [ms] (mean) Time per request: 0.822 [ms] (mean, across all concurrent requests) |
Je crois que c’est clair, y’a une différence.
Pour l’avoir testé sur un serveur web en production, le gain a été de +200%. Impressionnant !