Découvrir Apache Web Server 2

Comprendre les processus d'Apache

Testez gratuitement nos 1271 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Vous allez explorer les processus en exécution. Vous allez voir comment Apache gère les processus multiples et les threads.
08:17

Transcription

Voyons ce qu'il en est maintenant des processus mêmes Vous vous souvenez ps pour voir les processus c'est assez classique aux c'est assez standard aussi ce sont des options de la commande ps a pour montrer les processus de tout le monde a pour all users u pour montrer le propriétaire du processus, montrer le user et x pour montrer aussi les processus qui ne sont pas attachés à un terminal et là on en a besoin puisque les processus d'apache ne seront pas attachés à un terminal ce sont des services. Ensuite, un pipe, une barre verticale et puis je vais faire un grep sur le résultat de ps aux c'est à dire une recherche avec un motif pour trouver uniquement les lignes qui concernent Apache et je vais chercher Apache et, vous vous souvenez de ce petit truc pour nous montrer que les lignes qui concernent vraiment les process apache et pas la ligne ci que je lance en ce moment. Donc, 3 processus Vous les voyez, tous les mêmes usr sbin apache2 avec une option k et la commande start alors l'option k permet d'envoyer à apache2 une commande spécifique donc si vous voulez mettre start ici vous indiquez l'option k d'abord Donc il y a plusieurs options et on verra ça tout de suite Ensuite, pourquoi 3 processus Parce que traditionnellement Apache fonctionne dans un mode particulier qui s'appelle un mode multi-processus Alors, si on va dans la configuration d'Apache vous vous souvenez dans notre système debian ubuntu nous avons un certain nombre de répertoires Et nous avons des répertoires qui s'appellent mods-available et mods-enabled mods, comme son nom l'indique, ce sont les modules donc on a ici un répertoire qui comporte des scripts de configuration et de lancement de modules et donc ce seront des scripts disponibles et si nous avons un répertoire qui va contenir des liens symboliques pour activer les modules qui sont dans mods-available ? C'est très simple. Si je vous explique un peu mieux. Si je vais dans mods-available je trouve une suite de fichiers .load, et éventuellement .conf également On peut prendre à peu près au hasard mais pas totalement au hasard le module mpm_event.load Donc, ce script, comme vous le voyez appelle la commande LoadModule avec ce nom de module, qui se trouve à cet endroit, vous vous souvenez c'est un fichier .so donc une bibliothèque dynamique Donc ce script va dire eh bien cherche ce module dans Apache, pour qu'il fonctionne. Ici on a donc un stock de scripts de chargement de modules à disposition Si je vais dans le répertoire mods enabled vous voyez la couleur des fichiers avec mon LS a un peu changé parce que si je fais un LS L c'est à dire version longue j'ai la marque L ici qui veut dire link c'est un lien symbolique c'est à dire c'est pas un vrai fichier mais c'est un pointeur sur un fichier qui se trouve ailleurs C'est un raccourci, si vous voulez ce qu'on appelle sur Linux un lien symbolique, un symbolic link Donc, ce fichier je reprends par exemple mon mpm_event.load eh bien, on voit qu'il pointe vers mods-available mpm_event.load Ce que ça veut dire en court, c'est que dans mods available on a tout ce qui est disponible et il suffit que je crée ici un lien symbolique pour activer ce fichier Apache va, au démarrage, lire tous les fichiers qui se trouvent dans mods enabled et en fait ces fichiers qu'il lit c'est finalement des fichiers qui sont dans mods available Ce qui rend très pratique et très simple l'activation et la désactivation Vous créez un lien symbolique ici pour activer un module en démarrage et puis, si vous n'en voulez plus vous supprimez le lien symbolique mais la configuration reste existante et il vous suffit ensuite de recréer un lien symbolique pour réactiver ce module. Bref, vous voyez que, ici le module mpm event est donc activé. mpm ça veut dire multi-processing module donc un module multi-processus C'est ce module qui va déterminer comment Apache va gérer ses processus. Comment il va s'exécuter, si vous voulez. Il y a, si je retourne dans mods-available plusieurs modules mpm Vous avez mpm_event, mpm_worker mpm_prefork qui sont plutôt complémentaires. mpm_worker est le module couramment utilisé mais mpm_event est une version assez récente de ce module, qui était encore dans une version expérimentale mais qui maintenant est utilisable et qui essaie d'améliorer un petit peu mpm_worker Donc, le but des modules multi-processus c'est finalement de lancer plusieurs processus d'Apache Et c'est exactement donc ce qu'on voit si je reprends mon ps c'est un peu loin, voilà je vois 3 processus Mais en fait, vous voyez qu'il y a quand-même une différence entre ce premier processus qui tourne sur le compte root donc super user qui a ici un mods particulier et pourtant c'est le même exécutable Alors, il tourne en root et il a un mods particulier, ici qui veut dire, d'abord S ça veut dire interruptible sleep en fait, le processus est en attente sur un événement donc il est en exécution et puis il est en train d'attendre qu'il se passe quelque chose si vous voulez Le s indique que c'est un processus qui est leader de session Donc s pour session leader Ça veut dire que c'est lui le maître. Ici, nos deux autres processus sont dans le même état mais leur statut est l, et l ça veut dire multi-threaded Il y a plusieurs threads à l'intérieur de ce processus Donc en clair ce que ça veut dire c'est que ici nous avons un processus maître dont le travail est de lancer des enfants et de gérer des processus enfant et ces deux processus sont des processus enfant qui eux-mêmes comportent des threads Donc il s'agit d'une approche à la fois on lance plusieurs fois le programme donc plusieurs processus enfant ici qui vont répondre aux appels http des clients Et puis chaque processus a plusieurs threads qui vont être capables de gérer en parallèle les appels des clients Donc un système qui va permettre d'être assez souple au besoin Apache va charger les nouveaux processus de façon à répondre à une demande qui augmente et à la fois chaque processus aura plusieurs threads de façon à répondre à cette demande Si vous avez un seul processus qui comporte beaucoup beaucoup beaucoup de threads ça peut commencer à être très mal géré de même si vous avez des processus qui sont single-threaded vous devrez en ouvrir trop et vous consommez beaucoup de mémoire Donc, il s'agit d'une version hybride qui essaie de gérer au mieux une demande croissante ou fluctuante de pages web. Vous voyez d'ailleurs que en termes de mémoire ici ce que nous avons, alors si je fais un ps aux sans mon grep pour voir l'en-tête vous voyez ici que cette valeur c'est vsz donc c'est la mémoire virtuelle c'est à dire la mémoire allouée par le système donc je reviens sur mon grep ici vous voyez qu'il y a 71 kilo de mémoire allouée pour le parent et on en a un petit peu plus pour les enfants C'est les enfants qui vont répondre aux requêtes des utilisateurs donc c'est eux qui ont besoin de mémoire et en plus ils doivent gérer un certain nombre de threads donc c'est vraiment ces processus là qui vont travailler Celui-ci c'est juste le coordinateur, le maître, le patron.

Découvrir Apache Web Server 2

Installez et démarrez Apache sur un serveur dédié, que ce soit pour vos besoins privés, ou dans un contexte d’entreprise. Voyez également le fonctionnement de ses processus.

2h00 (25 vidéos)
Aucun commentaire n´est disponible actuellement
 
Spécial abonnés
Date de parution :7 janv. 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !