Configurar en Apache el modo Prefork o Worker

Dependiendo el tipo de aplicación, intensidad de uso de los servidores WEB Apache y capacidad hardware de tu sistema operativo, tendrás que configurar Apache en modo Prefork o Worker.

En mi caso, al ser WordPress una aplicación PHP, es más óptimo trabajar en modo Prefork.

Las versiones con las que estoy trabajando en el momento en el que escrito este artículo son Linux CentOS 7.5.1804 y Apache 2.4.6.

En el fichero siguiente fichero, he elegido arrancar Apache en modo Prefork, tal y como se puede observar:

[[email protected] conf]# cat /etc/httpd/conf.modules.d/00-mpm.conf
# Select the MPM module which should be used by uncommenting exactly
# one of the following LoadModule lines:

# prefork MPM: Implements a non-threaded, pre-forking web server
# See: http://httpd.apache.org/docs/2.4/mod/prefork.html
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

# worker MPM: Multi-Processing Module implementing a hybrid
# multi-threaded multi-process web server
# See: http://httpd.apache.org/docs/2.4/mod/worker.html
#
#LoadModule mpm_worker_module modules/mod_mpm_worker.so

# event MPM: A variant of the worker MPM with the goal of consuming
# threads only for connections with active processing
# See: http://httpd.apache.org/docs/2.4/mod/event.html
#
#LoadModule mpm_event_module modules/mod_mpm_event.so

[[email protected] conf]#

Y en el fichero de configuración de Apache he añadido las siguientes directivas:

# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# ServerLimit: maximum value for MaxClients for the lifetime of the server
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule prefork.c>
StartServers 16
MinSpareServers 10
MaxSpareServers 50
ServerLimit 1024
MaxClients 1024
MaxRequestsPerChild 4000
</IfModule>

# worker MPM
# StartServers: initial number of server processes to start
# MaxClients: maximum number of simultaneous client connections
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule worker.c>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>

Como podemos observar, el sistema ha arrancado 18 procesos de Apache (algo más del mínimo configurado):

[[email protected] ~]# ps -ef |grep -i httpd |wc -l
18
[[email protected] ~]#

Una vez que tenemos claro el modo en que vamos a arrancar Apache, de acuerdo con los requerimientos de nuestra aplicación, lo que tenemos que hacer es tunear la configuración de nuestro servidor WEB para un rendimiento óptimo. De esto hablo en el artículo Optimizando el consumo de memoria de Apache (MaxClients).

Más adelante hablaré también de PHP-FPM, para mejorar el rendimiento de las aplicaciones PHP con Apache. Pero esto será otro día 😉

¿Te ha gustado? ¡Compártelo!

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on email

Deja un comentario

Tal vez también te gustaría leer...

¿Qué es y cómo funciona Linkedin?

Linkedin es la mejor red social de empleo que existe en el mundo y la más utilizada por profesionales que buscan empleo y por aquellas empresas que necesitan contratar trabajadores. Su éxito global ha sido tal que, incluso las empresas tradicionales de búsqueda de empleo como las empresas de trabajo temporal (ETTs), consultorías y empresas

Leer más »

Averiguar las tecnologías con las que está construida una WEB

Los que somos administradores de páginas WEB, muchas veces nos fijamos en detalles de otos sitios que visitamos y nos interesa saber cómo están construidas. Por ejemplo, qué CMS está utilizando, qué tema de WordPress estamos viendo, con qué plugins, qué servidor WEB, etc. Teclado Mecánico Gaming de VicTsing, 104 Teclas y… 39,88 EUR Comprar

Leer más »

Mejorando el rendimiento de WordPress con Apache 2 y PHP-FPM

PHP-FPM (Fast CGI Process Manager) es un producto  que permite integrarse con Apache 2 para atender diferentes peticiones PHP de manera simultánea para mejorar el rendimiento y la carga de la página WEB, lo que se traduce en menores tiempos de carga y muchas más peticiones concurrentes en el mismo servidor WEB. Una de las

Leer más »

Cambiar el nombre y la URL de tu página empresarial en Facebook

Cuando creé este blog también hice una página en Facebook a donde enviaba y sigo enviando todos los artículos que publico. De esta manera, doy más visibilidad al blog y los visitantes pueden interactuar desde la red social para su mayor comodidad. Sin embargo, la primera vez que creas la página, Facebook le da un

Leer más »

Pruebas de estrés con Apache Bench o «ab»

Antes de publicar una página WEB al gran público, es conveniente hacer pruebas de estrés de los servidores WEB, revisar el rendimiento del Garbage Collector de Java (si la aplicación está hecha en Java) y de la base de datos, para saber si los usuarios van a experimentar problemas de lentitud o no cuando pongamos

Leer más »

Configuración de Bloques en NGINX

El concepto de bloque en NGINX es similar al de VirtualHost en Apache. Sin embargo, vamos a crear un fichero de configuración diferente para cada URL distinta que va a servir el Webserver por la misma IP y puerto. Rebajas Logitech B100 – Ratón óptico, color negro 4,99 EUR Comprar en Amazon Rebajas Logitech G203

Leer más »