Instances apache

Mammouth du PHP | 1511 Messages

07 sept. 2009, 14:08

Bonjour,
j'ai un serveur RPS chez ovh et je rencontre des problèmes de lenteurs.
Configuration:
Intel Atom 1.60GHz
512Mo de Ram
Ubuntu Server 8.04
Apache 2.2.8
PHP 5.2.4
Mysql 5.0.51

En regardant via virtualmin les processus lancés, je vois 34 instances de "/etc/init.d/apache2 -k start" :shock:
Ne devrait-il pas y en avoir une seule ? :?

ViPHP
ViPHP | 5924 Messages

07 sept. 2009, 17:37

Aucune de :

Code : Tout sélectionner

/usr/sbin/apache2 -k start
?

ViPHP
ViPHP | 1136 Messages

07 sept. 2009, 19:06

Salut ,
Ne devrait-il pas y en avoir une seule
Non , apres celà dépend du nombre de tes connexions , et de la configuration , apache fork ses process toutes les X connexions , sinon il ne pourrais gérer qu'une connexion à la fois . limite non ?

Apres , je sais qu'il y a un fonctionnement différent en mode CGI , mais là , je n'en sais pas beaucoup plus .. je vais essayer de m'informer d'ailleurs :-)

Ch.

Mammouth du PHP | 1511 Messages

07 sept. 2009, 20:06

Autant pour moi, c'est /usr/sbin/apache2 -k start
L'habitude de faire /etc/init.d/apache2 start ...

ViPHP
ViPHP | 1136 Messages

07 sept. 2009, 22:13

Voilà ,

après vérification , le lancement d'apache se fait de la façon suivante :

le premier processus , lancé avec les droits root , lance à son tour X serveurs aux droits plus restreints , puis se kill .

Les x serveurs , quant à eux , gèrent donc chacun une quantité des connexions clientes .
Chaque serveur fils , s'autokill une fois qu'il a répondu à une certaine quantité de requête ( ce qui évite le blocage possible due à des connexions dites zombies )

Le nombre de serveurs fils lancé au départ , baisse donc petit à petit , une fois qu'un nombre minimal est atteint , X nouveau serveurs fils est alors recréé .

Et ainsi de suite .

Toutes des quantités ( nb serv fils , nb clients , qte min de serv fils qte max ect ) sont configurables au niveau de la configuration global d'apache .
Il est tout de même conseillé de bien savoir ce que l'on fait , sous peine de rendre apache plus lent , et de surcharger le système .

Voilà , il est donc tout à fait normal d'avoir un série de process apache qui tournent constamment , et non un seul .
Ch.

ViPHP
ViPHP | 5924 Messages

08 sept. 2009, 03:03

Cela dépend du mpm.
Certains mpm se basent sur du fork (ici, tu as une multiplication des processus apache), d'autres sur du thread (là, tu as peu de processus).
Mais toujours est-il que c'est normal. En effet, pour supporter la charge de centaines de connexions simultannées, le serveur httpd est obligé de se cloner.
Les modules mpm sont décrits ici, tu peux choisir celui qui correspond le mieux à ton utilisation et le configurer correctement. Par exemple, pour ma part, ayant des services peu fréquentés, je revoie souvent à la baisse le nombre de processus créés.