Si ha implementado un LEMP (
Estas son las guías útiles para configurar LEMP Stack en Linux.
- Cómo instalar LEMP Stack con PhpMyAdmin en Ubuntu 20.04
- Cómo instalar el servidor LEMP en CentOS 8
- Cómo instalar LEMP en el servidor Debian 10
Recientemente, todos nuestros PHP sitios web en uno de nuestros LEMP los servidores web se volvieron lentos y finalmente dejaron de responder al iniciar sesión en el servidor. descubrimos que el sistema se estaba quedando sin RAM:PHP-FPM había consumido la mayor parte de la RAM, como se indica en la siguiente captura de pantalla (miradas:herramienta de monitoreo del sistema).
$ glances
En este artículo, mostraremos cómo prevenir PHP-FPM de consumir demasiada o toda la memoria del sistema (RAM ) en Linux. Al final de esta guía, aprenderá cómo reducir PHP-FPM consumo de memoria en un 50 % o más.
Reducir el uso de memoria PHP-FPM
Después de investigar un poco en Internet, descubrimos que necesitábamos reconfigurar el PHP-FPM administrador de procesos y ciertos aspectos del mismo para reducir el consumo de memoria de PHP-FPM en el archivo de configuración del grupo.
El grupo predeterminado es www y su archivo de configuración se encuentra en /etc/php-fpm.d/www.conf (en CentOS/RHEL/Fedora ) o /etc/php/7.4/fpm/pool.d/www.conf (en Ubuntu/Debian/Mint ).
$ sudo vim /etc/php-fpm.d/www.conf [On CentOS/RHEL/Fedora] $ sudo vim /etc/php/7.4/fpm/pool.d/www.conf [On Ubuntu/Debian/Mint]
Encuentre las siguientes directivas y establezca su valor para adaptarse a su caso de uso. Para las directivas que están comentadas, debe descomentarlas.
pm = ondemand pm.max_children = 80 pm.process_idle_timeout = 10s pm.max_requests = 200
Expliquemos brevemente las directivas anteriores y sus valores. Las pm La directiva determina cómo el administrador de procesos controlará la cantidad de procesos secundarios. El método predeterminado es dinámico , lo que significa que la cantidad de elementos secundarios (procesos secundarios) se establece dinámicamente en función de algunas otras directivas, incluidas pm.max_children que define el número máximo de niños que pueden estar vivos al mismo tiempo.
El gestor de procesos ideal es el ondemand esquema en el que no se crean procesos secundarios al inicio, sino que se generan a pedido. Los procesos secundarios solo se bifurcan cuando las nuevas solicitudes se conectan en función de pm.max_children y pm.process_idle_timeout que define la cantidad de segundos después de los cuales se eliminará un proceso inactivo.
Por último, pero no menos importante, debemos configurar las pm.max_requests parámetro que define el número de solicitudes que debe ejecutar cada proceso secundario antes de volver a generarse. Tenga en cuenta que este parámetro también se puede usar como una solución para las fugas de memoria en bibliotecas de terceros.
Referencia :Una mejor forma de ejecutar PHP-FPM.
Después de realizar estas configuraciones anteriores, noté RAM el uso ahora está bien en nuestro servidor. ¿Tiene alguna idea para compartir relacionada con este tema o preguntas? Comuníquese con nosotros a través del formulario de comentarios a continuación.