Le 08/03/2011 13:18, Luxpopuli Open source a écrit :
Bonjour Nicolas,
Merci pour ta réponse.
J'ai trouvé également cette page concernant les scripts Perl: http://modperlbook.org/html/11-1-Setting-the-MaxClients-Directive.html
Et ici, un calcul d'estimation pour déterminer la valeur: http://www.devside.net/articles/apache-performance-tuning
A propos de ab, peux-tu me donner un peu plus d'info sur le test
qui permet de mettre en évidence la différence de ressource entre
des ressources statiques et du php ?
Pascal
Le 7 mars 2011 14:57, FROIDURE Nicolas
<froidure_nicolas@yahoo.fr>
a écrit :
Le 06/03/2011 16:41, Luxpopuli Open source
a écrit :
Bonjour,
On lit de partout, à commencer dans la doc, que la
valeur par défaut (256) de la directive MaxClients de
Apache est suffisante dans la plupart des cas.
Comme je ne trouve pas cette valeur particulièrement
élevée, je voudrais savoir s'il y a un moyen d'évaluer
(d'une façon ou d'une autre) ce que cela représente en
terme de visites ou de pages vues ou je ne sais quoi ?
Si j'ai bien compris 256 c'est le nombre max de
processus fils simultanés = nombre max de connexions
simultanées ? (un processus ne gère qu'une connexion
(il meurt à la fin de la connexion) alors qu'une
connexion peut gérer MaxRequestsPerChild
requêtes) Oui/Non ?
Taille des processus
Quelles sont les techniques de calcul de la taille des
processus pour déterminer la valeur de MaxClients et
donc la quantité de RAM que doit avoir le serveur ?
Pascal
Slt,
En ce qui concerne la taille des processus, cela
dépend du nombre de modules Apaches chargés en mémoire +
la taille éventuelle de la mémoire utilisé par ton
language de programmation côté serveur.
C'est d'ailleurs le principal problème car pour des
ressources statiques, une valeur de 256 est probablement
supportable par de nombreuses confs matérielles, mais dès
lors que ce sont des scripts qui font appel à la
base/utilisent bcp de mémoire, ça change la donne.
J'ai lu qqpart : 1-2Mo pour une ressource statique et
8Mo pour un script PHP en moyenne, après, à toi de définir
le ratio entre processus php/res statiques. Si tu veux
optimiser, vire les modules qui ne te servent pas en
t'aidant de la doc, ça te permettra de mieux les connaître
par la même occasion.
Et sinon, dans le dossier bin d'apache, tu as ab
(apache benchmark) qui te permet d'effectuer un grand
nombre de requêtes simultanées. Tu pourra constater
l'énorme différence entre des ressources statiques et du
php.
Bonne semaine.
--
Cordialement, Nicolas Froidure, gérant, Elitwork SARL.
Slt,
Merci pour tes liens, j'y ai aussi appris des trucs.
Pour te donner un exemple sur un serveur local de test avec
512mo de ram et un AMD 2Go. 500 requêtes avec 50 requêtes
concurrentes :
- 22 secondes : 12ko générés en PHP avec cache côté serveur activé
(XCMS)
- 90 secondes : 12ko générés en PHP sans cache (XCMS)
- 3.71 secondes pour une image de 47ko
Je t'ai mis les résultats en fin de mail. Tu peux également
tester une charge plus "habituelle" en extrayant les url de tes logs
et en les mettant en entrée dans ab. Essayes man ab pour voir si il
lit l'entrée standard. A la limite, ça serait pas mal de faire un
shell qui automatise le "replay" de fichiers de log n fois. Je mets
ça dans ma todolist.
Bons tests.
[TEST 1]
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
www.elitwork.com.ewk (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Finished 500 requests
Server Software: Apache/2.2.16
Server Hostname:
www.elitwork.com.ewk
Server Port: 80
Document Path: /
Document Length: 12456 bytes
Concurrency Level: 50
Time taken for tests: 22.312500 seconds
Complete requests: 500
Failed requests: 0
Write errors: 0
Total transferred: 6396000 bytes
HTML transferred: 6228000 bytes
Requests per second: 22.41 [#/sec] (mean)
Time per request: 2231.250 [ms] (mean)
Time per request: 44.625 [ms] (mean, across all concurrent
requests)
Transfer rate: 279.93 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 2.6 0 15
Processing: 406 2187 459.2 2250 3421
Waiting: 390 2089 429.6 2125 3218
Total: 406 2188 459.3 2250 3421
Percentage of the requests served within a certain time (ms)
50% 2250
66% 2312
75% 2359
80% 2390
90% 2515
95% 2859
98% 3171
99% 3281
100% 3421 (longest request)
[TEST 2]
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
www.elitwork.com.ewk (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Finished 500 requests
Server Software: Apache/2.2.16
Server Hostname:
www.elitwork.com.ewk
Server Port: 80
Document Path: /
Document Length: 12477 bytes
Concurrency Level: 50
Time taken for tests: 89.796875 seconds
Complete requests: 500
Failed requests: 481
(Connect: 0, Length: 481, Exceptions: 0)
Write errors: 0
Total transferred: 6455956 bytes
HTML transferred: 6265456 bytes
Requests per second: 5.57 [#/sec] (mean)
Time per request: 8979.688 [ms] (mean)
Time per request: 179.594 [ms] (mean, across all concurrent
requests)
Transfer rate: 70.20 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 2.4 0 15
Processing: 2046 8802 1658.7 8906 13906
Waiting: 2000 8596 1627.1 8687 13703
Total: 2046 8802 1658.9 8906 13906
Percentage of the requests served within a certain time (ms)
50% 8906
66% 9031
75% 9078
80% 9125
90% 9296
95% 11750
98% 13390
99% 13656
100% 13906 (longest request)
[TEST 3]
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
www.elitwork.com.ewk (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Finished 500 requests
Server Software: Apache/2.2.16
Server Hostname:
www.elitwork.com.ewk
Server Port: 80
Document Path: /images/refs/48-thumb.png
Document Length: 46527 bytes
Concurrency Level: 50
Time taken for tests: 3.718750 seconds
Complete requests: 500
Failed requests: 0
Write errors: 0
Total transferred: 23387500 bytes
HTML transferred: 23263500 bytes
Requests per second: 134.45 [#/sec] (mean)
Time per request: 371.875 [ms] (mean)
Time per request: 7.438 [ms] (mean, across all concurrent
requests)
Transfer rate: 6141.58 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 1 4.7 0 15
Processing: 46 355 75.2 375 484
Waiting: 15 306 70.2 328 437
Total: 46 357 74.9 375 484
Percentage of the requests served within a certain time (ms)
50% 375
66% 390
75% 406
80% 421
90% 437
95% 437
98% 453
99% 453
100% 484 (longest request)
--
Cordialement, Nicolas Froidure, gérant, Elitwork SARL.