4 votes

Comment apache crée-t-il un thread ?

Alors que je discutais avec mes collègues il y a quelques jours, l'un d'eux a mentionné qu'Apache crée un thread par connexion.

Qu'entend-il exactement par "par connexion" ?

Disons que j'ai un fichier HTML qui contient trois images. Lorsque j'accède au fichier, mon navigateur demande trois images à un serveur. Alors... est-ce qu'Apache crée un fil de discussion pour chaque image ?

8voto

David Schwartz Points 31009

"Disons que j'ai un fichier HTML qui contient trois images. Lorsque j'accède au fichier, mes navigateurs demandent trois images à un serveur. Alors... est-ce qu'Apache crée un fil de discussion pour chaque image ?"

Oui, si deux choses sont vraies : Premièrement, le navigateur doit demander les trois images en utilisant trois connexions distinctes. Deuxièmement, les trois demandes devraient se chevaucher dans leur traitement du côté du serveur.

Si le navigateur n'utilise qu'une seule connexion, en utilisant les keepalives HTTP/1.1, alors même si Apache utilise un thread pour chaque connexion, il n'y a toujours qu'un seul thread. Et même si le navigateur utilise trois connexions, s'il ferme chaque connexion avant d'ouvrir la suivante, Apache peut réutiliser le même thread et ne pas avoir besoin de trois threads différents pour gérer les trois connexions.

5voto

chuckx Points 1110

La manière dont Apache gère les connexions multiples est l'utilisation d'un fichier de type Module multiprocesseur (MPM) . Le MPM par défaut dépend de l'environnement dans lequel votre serveur est installé.

Les MPM par défaut dans les deux environnements les plus courants sont les suivants :

Unix    prefork
Windows mpm_winnt

El préfiguration MPM est basé sur des processus et n'utilise pas de threads. L'alternative dans les environnements Unix est le travailleur MPM, qui utilise plusieurs processus et plusieurs threads par processus.

El mpm_winnt MPM utilise 1 processus serveur, 1 processus enfant et plusieurs threads au sein du processus enfant.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X