Gandi.net Groups

Hébergement Généralités: Et allez encore en vrac...

Vous devez être connecté pour poster de nouveaux messages. Créer un compte.

Bon la je commence à saturer !!! 

C'est encore parti en sucette plus rien ne fonctionne ca à coupé
pendant 5-6 minutes et je ne sais même pas pourquoi !!! 

Je veux bien que je commence à avoir pas mal de visites mais est-ce
normal qu'un serveur 4 parts ne tiennent pas la charge avec 400 visites
en 1 heure ?
Le 8 mai 2008 à 11:22 CEST, Arnaudin xavier a écrit :
Bon la je commence à saturer !!! 

C'est encore parti en sucette plus rien ne fonctionne ca à coupé
pendant 5-6 minutes et je ne sais même pas pourquoi !!! 

Je veux bien que je commence à avoir pas mal de visites mais est-ce
normal qu'un serveur 4 parts ne tiennent pas la charge avec 400
visites
en 1 heure ?
J'ai mis 6 parts sur le serveur est la maintenant cela tient la charge; 
Est-ce que lorsque les parts changent il y à une mise à jour de la
configuration au niveau d'apache et de mysql qui est faite ?

N'y aurait-il pas d'optimisations à effectuer afin que cela ne train
pas la patte ?
J'ai fait les optimisation de base de données cela va bien sur les
index. J'ai un système de cache afin de ne pas réutiliser les accès
mysql.
Le 8 mai 2008 à 12:40 CEST, Arnaudin xavier a écrit :
Le 8 mai 2008 à 11:22 CEST, Arnaudin xavier a écrit :
Bon la je commence à saturer !!! 

C'est encore parti en sucette plus rien ne fonctionne ca à coupé
pendant 5-6 minutes et je ne sais même pas pourquoi !!! 

Je veux bien que je commence à avoir pas mal de visites mais est-ce
normal qu'un serveur 4 parts ne tiennent pas la charge avec 400
visites
en 1 heure ?
J'ai mis 6 parts sur le serveur est la maintenant cela tient la
charge; 
Est-ce que lorsque les parts changent il y à une mise à jour de la
configuration au niveau d'apache et de mysql qui est faite ?

N'y aurait-il pas d'optimisations à effectuer afin que cela ne train
pas la patte ?
J'ai fait les optimisation de base de données cela va bien sur les
index. J'ai un système de cache afin de ne pas réutiliser les accès
mysql.
Je me répond à moi même. En fait j'ai comme l'impression que niveau
performance gandi cela n'a pas l'air d'etre tip-top. Je viens de tester
mon serveur qui à 6 parts (augmenté avant c'était à 3 parts ) Donc
si je regarde l'offre depuis le détail de gandi : 
6 parts ca fait un serveur entre un Pentium IV et un intel dual Xeon. 

Ok il est capable de servir 137.34 requetes par secondes. Mais le
serveur en lancant le test ci-dessous monte facilement à 8 d'uptime. 
De plus si j'essai d'aller sur mon site en même temps, cela ne
s'affiche même pas ou c'est très-très lent. On peut également
constater que  949 requetes ont étés lentes. 

ab -kc 25 -t 30 http://xxxx/

Document Path:          /
Document Length:        79712 bytes

Concurrency Level:      25
Time taken for tests:   30.21065 seconds
Complete requests:      4123
Failed requests:        0
Write errors:           0
Keep-Alive requests:    0
Total transferred:      330442517 bytes
HTML transferred:       329188400 bytes
Requests per second:    137.34 [#/sec] (mean)
Time per request:       182.034 [ms] (mean)
Time per request:       7.281 [ms] (mean, across all concurrent
requests)
Transfer rate:          10749.02 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0   25  36.5      8     230
Processing:    10  152  72.6    145     936
Waiting:        0   59  54.3     40     367
Total:         10  177  76.0    167     949

Percentage of the requests served within a certain time (ms)
  50%    167
  66%    199
  75%    224
  80%    233
  90%    264
  95%    302
  98%    357
  99%    409
 100%    949 (longest request)

Avec ce test cela rejoint toujours ma question. J'aimerais avoir une
réponse du support si possible ou autre admin qui se débrouille bien
en optimisation apache etc. 
Le fait d'augmenter le nombre de parts sur le serveur change t'il la
configuration des processus apache ? J'ai constaté que le keep alive
était activé. 
Le temps d'attente du keep-alive est de 15ms. Le fait de diminuer
celui-ci peut-il augmenter les performances ? 

- Le max-client est définit comme ceci
 MaxClients          150

Le fait d'augmenter la puissance du serveur il faudrait normalement
augmenter cette valeur non ?

- Une autre valeur 
MaxRequestsPerChild   0

Normalement si j'ai bien compris cela permet de définir le nombre de
requetes maximum pour chaque processus. Comme il est à 0 ca signifie
illimité ! Il vaudrait peut être mieux le fixer à un certaine limite
non ?

- Une autre valeur
 MinSpareThreads 5
J'ai lu quelque part que si MinSpareThreads est trop bas apache
génèrera trop de processus enfant et consommera beaucoup de mémoire
ram. Ce qui semble le cas si vérifie en faisant un top sur la machine. 

Bref, je pense que la configuration livrée lors d'une installation
d'apache n'est pas forcement optimisée, et surtout je pense qu'elle est
livrée tel-quelle par défaut. Ce qui explique peut être pourquoi
malgrès mes 7500 visiteurs que j'ai eu hier le serveur fonctionnait
encore mais par moment avait des temps d'attente lié au fort uptime du
serveur. C'est pourtant un serveur 6 parts ce qui devrait quand même
fonctionner et surtout être capable de servir beaucoup plus de pages
!!!

Enfin vous l'aurez compris, je pense qu'il y à une grosse optimisation
à faire du côté d'apache afin que nos serveurs aillent beaucoup plus
vites. 

J'imagine que ce doit être la même chose du côté de mysql qui doit
être configuré par défaut également. 

Xavier
Le sam, 10 mai 2008 at 11:19 GMT, Arnaudin xavier
<xavier.arnaudin@free.fr> a écrit :
Ok il est capable de servir 137.34 requetes par secondes. Mais le
serveur en lancant le test ci-dessous monte facilement a 8 d'uptime. 
De plus si j'essai d'aller sur mon site en meme temps, cela ne
s'affiche meme pas ou c'est tres-tres lent. On peut egalement
constater que  949 requetes ont etes lentes. 
Je reponds uniquement sur ce point precis.
Generalement, le load, ca correspond a des processus qui demandent en
meme temps acces au processeur, et/ou aux ios (disque).
Quand on "benche" sur des charges comme tu indiques, ca ne semble pas
anormal de monter a 8.

Pour les "requetes tres lentes", sur un apache, ca correspond
generalement au fait que le MaxClients est atteint (tu en parles plus
bas).
Je suppose que tu es en Gandi AI, sinon tu peux essayer le modifier.
La "regle" que j'applique, en general pour le dimensionner, est de
regarderla taille memeoire qu'occupe un processus apache (de l'ordre de
10 a 20 Mo, selon les modules charges) et de divisr la quantite de
memoire dispo par cette valeur. Ca donne un ordre de grandeur qui permet
normalement que le serveur ne swappe pas, et evite la spirale infernale
du swap -> ca rame -> plus de processus -> plsu de swap -> ...
Le 10 mai 2008 à 17:28 CEST, Dominique ROUSSEAU a écrit :
Le sam, 10 mai 2008 at 11:19 GMT, Arnaudin xavier
<xavier.arnaudin@free.fr> a écrit :
Ok il est capable de servir 137.34 requetes par secondes. Mais le
serveur en lancant le test ci-dessous monte facilement a 8 d'uptime. 
De plus si j'essai d'aller sur mon site en meme temps, cela ne
s'affiche meme pas ou c'est tres-tres lent. On peut egalement
constater que  949 requetes ont etes lentes. 
Je reponds uniquement sur ce point precis.
Generalement, le load, ca correspond a des processus qui demandent en
meme temps acces au processeur, et/ou aux ios (disque).
Quand on "benche" sur des charges comme tu indiques, ca ne semble pas
anormal de monter a 8.
Ah ok mon serveur 6 parts tient la route pour le moment, mais bon quand
j'ai des flots massifs de gens ca monte en uptime.
Pour les "requetes tres lentes", sur un apache, ca correspond
generalement au fait que le MaxClients est atteint (tu en parles plus
bas).
Le maxclient est pourtant définit à 150 ce qui semble raisonnable.
disons qu'en lisant pas mal de docs depuis ce matin, je constate que
parfois certains spécifient un maxclient à 50 pourtant avec un gros
serveur. Ils changent les autres paramètres pour compenser. J'avoue que
je ne suis pas un grand spécialiste de l'admin sous nunux :-p
Mon metier c'est développeur depuis 10 ans :-) 
Je suppose que tu es en Gandi AI, sinon tu peux essayer le modifier.
Et oui je suis en gandi AI donc je n'ai pas la main; c'est dommage il
aurait été bien de pouvoir permettre une modification d'un fichier
apache de conf personnel ou l'on peut placer les paramètres que l'on
souhaite. Disons que l'idéal serait de pouvoir toucher à la conf
d'apache et pouvoir le relancer en gandi AI sans pour autant toucher à
la partie système.
La "regle" que j'applique, en general pour le dimensionner, est de
regarderla taille memeoire qu'occupe un processus apache (de l'ordre
de
10 a 20 Mo, selon les modules charges) 
Actuellement un process apache en faisant un top  avec shift m me donne
un ordre de 16m de mémoire pour le process apache.
et de divisr la quantite de
memoire dispo par cette valeur. Ca donne un ordre de grandeur qui
permet
normalement que le serveur ne swappe pas, et evite la spirale
infernale
du swap -> ca rame -> plus de processus -> plsu de swap -> ...
Donc si je suis le raisonnement j'ai un serveur de 6 parts avec 1.5 go
de mémoire 1500 / 16 = 93 ?
C'est bien ca ?
Le sam, 10 mai 2008 at 17:57 GMT, Arnaudin xavier
<xavier.arnaudin@free.fr> a écrit :
Le 10 mai 2008 a 17:28 CEST, Dominique ROUSSEAU a ecrit :
Generalement, le load, ca correspond a des processus qui demandent en
meme temps acces au processeur, et/ou aux ios (disque).
Quand on "benche" sur des charges comme tu indiques, ca ne semble pas
anormal de monter a 8.
Ah ok mon serveur 6 parts tient la route pour le moment, mais bon
quand
j'ai des flots massifs de gens ca monte en uptime.
"load", pas "uptime" :-)

[...]
La "regle" que j'applique, en general pour le dimensionner, est de
regarderla taille memeoire qu'occupe un processus apache (de l'ordre
de
10 a 20 Mo, selon les modules charges) 
Actuellement un process apache en faisant un top  avec shift m me
donne
un ordre de 16m de memoire pour le process apache.
et de divisr la quantite de
memoire dispo par cette valeur. Ca donne un ordre de grandeur qui
permet
normalement que le serveur ne swappe pas, et evite la spirale
infernale
du swap -> ca rame -> plus de processus -> plsu de swap -> ...
Donc si je suis le raisonnement j'ai un serveur de 6 parts avec 1.5 go
de memoire 1500 / 16 = 93 ?
C'est bien ca ?
Oui, ça donnerait un truc comme ça.
Un truc intéressant, ça serait que tu regardes l'évolution de
l'utilisation du swap pendant que tu benches, pour voir si les "requetes
lentes" ne se retrouveraient pas associées avec un moment où ton
serveur
se met à swapper.
Le 12 mai 2008 à 18:08 CEST, Dominique ROUSSEAU a écrit :
Le sam, 10 mai 2008 at 17:57 GMT, Arnaudin xavier
<xavier.arnaudin@free.fr> a écrit :
Le 10 mai 2008 a 17:28 CEST, Dominique ROUSSEAU a ecrit :
Generalement, le load, ca correspond a des processus qui demandent
en
meme temps acces au processeur, et/ou aux ios (disque).
Quand on "benche" sur des charges comme tu indiques, ca ne semble
pas
anormal de monter a 8.
Ah ok mon serveur 6 parts tient la route pour le moment, mais bon
quand
j'ai des flots massifs de gens ca monte en uptime.
"load", pas "uptime" :-)
Lol; je me suis trompé de termes :-p
[...]
La "regle" que j'applique, en general pour le dimensionner, est de
regarderla taille memeoire qu'occupe un processus apache (de l'ordre
de
10 a 20 Mo, selon les modules charges) 
Actuellement un process apache en faisant un top  avec shift m me
donne
un ordre de 16m de memoire pour le process apache.
et de divisr la quantite de
memoire dispo par cette valeur. Ca donne un ordre de grandeur qui
permet
normalement que le serveur ne swappe pas, et evite la spirale
infernale
du swap -> ca rame -> plus de processus -> plsu de swap -> ...
Donc si je suis le raisonnement j'ai un serveur de 6 parts avec 1.5
go
de memoire 1500 / 16 = 93 ?
C'est bien ca ?
Oui, ça donnerait un truc comme ça.
Un truc intéressant, ça serait que tu regardes l'évolution de
l'utilisation du swap pendant que tu benches, pour voir si les
"requetes
lentes" ne se retrouveraient pas associées avec un moment où ton
serveur
se met à swapper.
J'ai beau parametrer dans le fichier de configuration de mysql le
slow_query, ensuite lorsque je regarde s'il est activé il me dit oui.
J'ai parametré le chemin du fichier de log mais visiblement les droits
ne sont pas bon il ne doit pas avoir le droit d'écrire. J'ai parametré
comme cela dans mon fichier my.cnf:

log_slow_queries  =     /var/log/mysqld-slow.log
long_query_time   =     3
max_connections=100
wait_timeout=60
connect_timeout=30
thread_cache_size=128
key_buffer=25M
join_buffer=1M
table_cache=1000
max_connect_errors=100
thread_concurrency=2

Dans phpmyadmin, j'ai bien marqué log_slow_query ON.
Avec les bench que j'avais fait, et sur un serveur 6 parts, pas de swap
particulier. Pense tu que les valeurs ci-dessus sont ok ? 
Si je change pour un serveur avec seulement 3 parts vu que mon traffic
est redevenu normal que doit-je mettre ?