2017-01-20 4 views
0

Selon le site Web officiel d'apache.org:Combien de connexions un processus enfant peut-il gérer?

La directive MaxConnectionsPerChild définit la limite du nombre de connexions qu'un processus serveur enfant individuel doit gérer avant de mourir.

J'apprécierais quelques précisions:

Q1: Étant donné que ce paramètre est dans le contexte de prefork, ce que le nombre de connexions mentionnées ci-dessus aux demandes se réfèrent connexions (de SYN_SENT) ou acceptées/connexions établies? Dans quelle situation, serait-il bon de l'expirer? Q2: Contrairement au parent qui gère uniquement l'écoute sur le port 80, l'enfant préforcé gère à la fois l'écoute et les connexions établies. La limite des demandes de connexion entrantes simultanées (SYN_SENT) qu'il peut gérer en même temps est limitée par la directive apache de MaxRequestWorkers tandis que ThreadsPerChild limite le nombre de sockets ESTABLISHED simultanées. Est-ce correct ? Q3: Si les enfants écoutent sur le port 80, que ferait alors le parent? Est-ce qu'il continue d'écouter?

Merci

+0

Je comprends ThreadsPerChild n'est pas utilisé sous le prefork mpm – Amit

Répondre

0

Dépend de mpm utilisé. Pour une mpm prefork, un processus enfant gère une connexion (si ServerLimit sera égal MaxClients (maintenant appelé MaxRequestWorkers au apache 2.4).

travailleurs et événements MPMs utilisent threads où un enfant peut gérer plusieurs connexions.

Q1: n °
MaxCequestsPerChild est maintenant appelé MaxRequestsPerChild Selon le site Web apache.org, MaxRequestsPerChild définit le nombre total de demandes traitées par chaque processus de serveur enfant avant que l'enfant ne meure La raison principale de la définition de MaxRequestsPerChild est d'éviter les longues durées de vie. fuites de mémoire induites par le processus MaxRequestsPerChild par défaut e prefork MPM est de 1000 et pour le travailleur MPM est 0.

Q2: Le concept lui-même est correct. Bien que MaxRequestWorkers et ThreadsPerChild ne soient pas des directives mpm prefork. Q3: Le parent continue à écouter les enfants supplémentaires de Prefork selon les besoins et délègue leur écoute pour répondre aux demandes de connexion entrantes.

Un bon moyen de contourner la limitation prefork 1 enfant/1 est d'activer KeepAlive et ses sous-directives. Cela permettra aux clients/navigateurs d'émettre de nombreuses requêtes GET simultanées pour pouvoir récupérer tous les éléments de la page sur une connexion TCP. Cela réduit la latence car il réduit considérablement les poignées de main tcp coûteuses. La plupart des navigateurs prennent en charge la fonctionnalité Keep-Alive. Assurez-vous d'imposer un délai d'attente avec KeepAliveTimeout pour que ces onglets de navigateur non fermés ne monopolisent pas vos connecteurs.