Para mejorar el rendimiento de los servidores web se deben realizar algunos cambios en la configuración que estos tienen por defecto, en esta entrada vamos a explicar algunas de las modificaciones recomendadas en un servidor Apache para mejorar su rendimiento.
Para poder ejecutar este script se debe tener instalado el paquete Python3, si no se tiene este paquete instalado, se puede instalar con el comando sudo dnf install python3
De los procesos listados nos interesa la cantidad de procesos y el tamaño total de memoria RAM usados por httpd (5 : 54 MB) y php-fpm (2 : 53,6 MB).
Con estos datos y teniendo en cuenta que la máquina en la cual se realiza este laboratorio cuenta con 4 GB de memoria RAM y un procesador de 8 núcleos, se calculan los siguientes valores necesarios para la optimización.
Tamaño promedio por proceso httpd: 54/5 = 10,8.
Tamaño promedio por proceso php-fpm: 53,6 / 2 = 26,8.
Memoria reservada para el web server: (Se recomienda separar el 80% de la memoria RAM del equipo para los procesos del web server) 4000 * 80% = 3200
MaxRequestWorkers: Este valor se obtiene a partir de la siguiente formula:
MaxRequestWorkers = Memoria reservada para el web server / Tamaño promedio por proceso httpd
MaxRequestWorkers = 3200/10,8 = 296
Maxclients: Este valor se obtiene a partir de la siguiente formula
Maxclients = Memoria reservada para el web server / Tamaño promedio por proceso php-fpm
Maxclients = 3200/26,8 = 119
ServerLimit: El mismo valor asignado a MaxRequestWorkers (296)
StartServers: Es igual al número de núcleos del procesador (8)
pm.max_children: El mismo valor asignado a MaxClients (119)
pm.start_servers: Es igual al número de núcleos del procesador multiplicado por cuatro (32)
pm.min_spare_servers: Es igual al número de núcleos del procesador multiplicado por dos (16)
pm.max_spare_servers: El mismo valor asignado a pm.start_servers (32)
Luego de realizar los cálculos necesarios se procede a modificar los archivos de configuración de Apache y de PHP-FPM.
El archivo de configuración de Apache se encuentra generalmente en la ruta /etc/httpd/conf/httpd.conf y en este se añadieron las siguientes líneas:
El archivo de configuración de PHP-FPM generalmente se encuentra en la ruta /etc/php-fpm.d/www.conf y en este se realizaron las siguientes modificaciones:
pm = ondemand
pm.max_children = 29
pm.start_servers = 32
pm.min_spare_servers = 16
pm.max_spare_servers = 32
pm.max_requests = 1000
Una vez realizadas las modificaciones en los archivos de configuración, se reinician los servicios de Apache y php-fpm.
sudo service httpd restart
sudo service php-fpm restart
Finalmente se realiza una prueba de funcionamiento del web server, enviándole 5000 solicitudes con una concurrencia de 100 solicitudes al tiempo sin que se hayan presentado fallas ni en el envío de las solicitudes ni en el funcionamiento del web server.
ab -n 5000 -c 100
No hay comentarios:
Publicar un comentario
Tus Comentarios son Importantes para Nosotros Siéntete Libre De Opinar