SI vous ne le savez pas encore, apache peut tourner sous différentes configurations. Et cela a des implication sur les performances de votree site web.
Le terme MPM revient souvent « multi processing method« , comment manager plusieurs connection simultanées à votre site web.
Apache en mode Prefork, à chaque nouvelle connexion, Apache crée un process.
Apache en mode Worker à chaque nouvelle connexion crée un nouveau thread dans un processus fils. En gros Worker est plus rapide.(mais certains modules peuvent être incompatibles.
C’est la plus ancienne, Apache n’a qu’un seul processus. Si deux pages web de votre site sont servies,
C’est à la compilation d’Apache que cela est décidé. Donc pour savoir comment est compilé Apache par rapport à son mode de fonctionnnement la commande à faire est :
$ apache2 -V
vous devez être sous root pour faire marcher la commande ci-dessus. le résultat peut être le suivant :
Server version: Apache/2.2.22 (Debian)
Server built: Jun 16 2014 03:51:14
Server’s Module Magic Number: 20051115:30
Server loaded: APR 1.4.6, APR-Util 1.4.1
Compiled using: APR 1.4.6, APR-Util 1.4.1
Architecture: 64-bit
Server MPM: Prefork
threaded: no
forked: yes (variable process count)
Server compiled with….
-D APACHE_MPM_DIR= »server/mpm/prefork »
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=128
-D HTTPD_ROOT= »/etc/apache2″
-D SUEXEC_BIN= »/usr/lib/apache2/suexec »
-D DEFAULT_PIDLOG= »/var/run/apache2.pid »
-D DEFAULT_SCOREBOARD= »logs/apache_runtime_status »
-D DEFAULT_LOCKFILE= »/var/run/apache2/accept.lock »
-D DEFAULT_ERRORLOG= »logs/error_log »
-D AP_TYPES_CONFIG_FILE= »mime.types »
-D SERVER_CONFIG_FILE= »apache2.conf »
On voit bien que c’est prefork qui est utilisé.