Découvrir Apache Web Server 2

Comprendre le module MPM prefork

Testez gratuitement nos 1333 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Voyez à quoi correspond le module mpm_prefork. Ce module est activé par défaut lorsque vous choisissez le module PHP natif d'Apache.
05:57

Transcription

Dans ce chapitre, nous allons parler plus précisément des modules. J'aimerais revenir d'abord sur ce que je vous avais montré au sujet des modules MPM. Des modules multi-processus. Donc on retourne dans etc/apache2/, vous vous souvenez dans mods-available on a trois modules différents. mpm_event, mpm_prefork dont je vous ai brièvement parlé, et mpm_worker. Vous vous souvenez peut-être, mpm_event est une version plus récente de mpm_worker. Donc, à la base, vous choisissez l'un ou l'autre et vous avez à peu près les mêmes fonctionnalités. Sauf que mpm_event est à préférer maintenant parce que mpm_worker va donc créer plusieurs processus et, à l'intérieur de chaque processus, plusieurs «threads», ce qui va être le cas aussi de mpm_event mais les «threads» vont être conservés si on est en «keep alive» c'est-à-dire qu'on attend pendant quelques secondes, vous vous souvenez de la configuration, un nouvel appel de notre client ce qui fait que les «threads» sont sollicités pour attendre. mpm_event va dédier un «thread» pour l'attente et donc les «threads» qui vont vraiment fonctionner seront toujours pour répondre à des vraies requêtes actuelles, et non pas pour attendre la suivante. Donc il y a une forme d'optimisation qui est intéressante ici. Je vais vous montrer quelque chose. On va activer, désactiver un module particulièrement. Mais on se souvient juste que ... nos processus Apache sont ici : le processus maître et puis on a deux processus enfants qui ont été lancés. Comment est-ce qu'on active ou on désactive des modules ? Vous vous souvenez de la commande a2ensites pour activer, «enabler» un site. Et bien évidemment on a la même chose pour les modules. Donc je vais désactiver avec a2dismod, «disable module», notre module mpm_event qui est donc celui qui est activé pour l'instant. Bien entendu je ne vais pas redémarrer maintenant, je n'ai pas de module MPM qui est activé. Je vais, bien entendu, faire un enmod et maintenant je vais choisir mpm_prefork. Donc la manière de gérer les processus va être différente. J'ai choisi une méthode «prefork». On va voir si ça fait une différence. Je vérifie ... ma syntaxe. Ok. Et donc je redémarre en graceful. Voyons si on a une différence maintenant, en terme de nombre de processus. Donc rien du tout, il n'y a pas de process démarré. On va faire un ps aux, voir si on trouve de l'apache et bien non, on n'en trouve pas. Apache est-il démarré ou non ? On va essayer quand même de faire un start. On regarde encore. Ah, voilà. Il y avait eu un problème dans le démarrage. Vous avez vu la différence ? J'ai ici toujours mon process parent mais j'ai maintenant cinq process enfants. On va regarder d'ailleurs la configuration de mpm_prefork.conf. On voit qu'on a une configuration qui dit StartServers à 5. On a des SpareServers à minimum de 5, à max de 10. Et puis on a des RequestWorkers qui sont à 150 en maximum. Qu'est-ce que ça veut dire ? Qu'on va commencer à 5, donc on a bien cinq process, qu'on va commencer à répondre à des besoins, et qu'on va garder au minimum 5 serveurs, c'est-à-dire 5 processus qui vont être en attente, c'est-à-dire qu'ils ne vont pas travailler. Et on va aller jusqu'à 10 au maximum. Si je commence à faire de multiples appels, je vais avoir un nombre de processus qui va augmenter ici. Pourquoi? Parce que le module «prefork» lui, n'est pas «multi-thread». C'est-à-dire que chaque processus ici, celui-ci par exemple, va répondre à une seule demande, parce qu'il est «single-threaded» c'est-à-dire que le processus ne peut exécuter qu'un seul «thread», ne répondre qu'à une seule demande. Donc vous comprenez que le module qui a été choisi par défaut qui est mpm_event, est un peu plus moderne. Il a certes quelques processus, mais il gère des «threads» à l'intérieur de chaque processus qui vont lui permettre d'être beaucoup plus efficace avec moins de processus. Si vous choisissez cette version ancienne qui est le module «prefork», vous aurez beaucoup plus de processus qui tourneront, qui certes n'ont pas beaucoup de mémoire mais vous avez une gestion faite de beaucoup plus de processus différents. mpm_event est plus moderne et plus optimisé pour, en tout cas, des besoins importants. Donc on va revenir à notre module mpm_event, simplement, en faisant a2dismod de mpm_prefork et puis on va faire un enmod, bien sûr, de mpm_event et puis, on vérifie quand même toujours notre configuration, la syntaxe est ok. On fait un graceful. On vérifie ... Non, et donc on va faire un start pour retrouver notre situation de départ.

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 !