52 votes

Comment savoir si Apache fonctionne en tant que prefork ou worker ?

Comment savoir si Apache fonctionne (ou est configuré pour fonctionner) en tant que prefork ou worker ?

68voto

JorgeeFG Points 905

Dans Ubuntu 14.04

a2query -M

Raconte event , prefork , worker

Vous pouvez le modifier en ajoutant des liens symboliques pour mpm_<chosen> de mods-available à mods-enabled en /etc/apache2 .

Un seul est autorisé à la fois.

66voto

Chris Johnson Points 763

Les réponses données par Series8217 et Andol sont toutes deux incorrectes.

La question était de savoir comment savoir si Apache est en cours d'exécution Prétravailleur ou travailleur. Les conseils donnés par les autres réponses ne font qu'indiquer ce que le par défaut Le MPM est (basé sur des modules compilés), pas si ce choix par défaut ou un autre choix est utilisé à l'heure actuelle.

Si httpd -V montre prefork, cela signifie simplement que prefork est le MPM compilé par défaut. Il est possible d'y déroger en modifiant un paramètre du fichier de configuration d'Apache, comme le montre cette procédure :

  1. Modifier le fichier de configuration (par exemple /etc/sysconfig/httpd sur CentOS / RedHat)
  2. Ajouter ou décommenter cette ligne : HTTPD=/usr/sbin/httpd.worker
  3. Redémarrer Apache

Ce processus permet de savoir quel MPM est actuellement en cours d'exécution :

  1. Activer Apache mod_info
  2. Interroger l'url mod_info, typiquement curl localhost/server-info
  3. La section "Paramètres du serveur" affiche "Nom MPM : Travailleur"
  4. Exécuter httpd -V encore une fois - il y aura toujours prefork, et non worker

En résumé :

  • httpd -V indique l'option par défaut et non l'option en cours d'utilisation

Sur de très nombreux sites web, on trouve des réponses indiquant qu'il faut utiliser httpd -V pour savoir si Apache fonctionne en mode prefork ou worker. Ils sont tous erronés. Essayez la procédure ci-dessus pour vous en convaincre.

34voto

Eduardo Diaz Points 96

Le MPM est configuré au moment de la compilation. Une façon de s'en rendre compte par la suite est de lister les modules compilés. Cette liste inclura le MPM choisi. La liste peut être obtenue en exécutant le binaire apache, avec l'option -l.

andreas@halleck:~$ apache2 -l
Compiled in modules:
 core.c
 mod_log_config.c
 mod_logio.c
 worker.c
 http_core.c
 mod_so.c
andreas@halleck:~$ 

Nous trouvons ici le module worker.c, c'est pourquoi j'exécute le MPM worker.

7voto

user27983 Points 89

Sur RedHat et ses dérivés, il suffit de lancer top o ps aux et regardez le nom du processus httpd :

  • httpd signifie qu'Apache fonctionne en tant que prefork
  • httpd.worker signifie qu'il fonctionne en tant que travailleur

7voto

Hex Points 1919

L'une des façons de le découvrir dans les distros de type Debian est d'exécuter :

apachectl -V | grep -i mpm

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