GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo investigar una pérdida de memoria con Apache y PHP?

Solución 1:

Sabemos que el problema de la memoria proviene de apache/PHP porque cada vez que emitimos una recarga /etc/init.d/httpd, el uso de la memoria disminuye

No, eso solo significa que está relacionado con el tráfico web. Continuó mencionando que está ejecutando mysql en la caja, presumiblemente administrando datos para el servidor web, podría ser el culpable aquí. Al igual que otros servicios que utiliza su pila web que no ha mencionado.

A cada subproceso de apache se le asigna un límite de memoria de PHP de 512 MB, lo que explica

No, no lo hace. Está informando un promedio de 7 y un máximo de 25 servidores ocupados, pero su gráfico de memoria muestra un delta de alrededor de 25 Gb.

Realmente debería comenzar de nuevo con el ajuste HTTP básico:parece estar ejecutando 256 httpds constantes, pero su uso máximo es 25, esto es simplemente tonto.

y un max_execution_time de 120 segundos que debería terminar los subprocesos cuya ejecución lleva más tiempo

No, solo si el hilo de ejecución está dentro del intérprete de PHP, no si PHP está bloqueado.

que realiza modelos financieros

(suspiro)

Hubiera sido útil si hubiera proporcionado detalles de cómo configuró Apache, subproceso o prefork, qué versión, cómo se invoca PHP (módulo, cgi, fastcgi), si está usando conexiones persistentes, si usa procedimientos almacenados.

Le sugiero que comience moviendo mysql a una máquina separada y deje de usar conexiones persistentes (si las está usando actualmente). Establecer el límite de memoria mucho bajar y anular esto por secuencia de comandos. Asegúrese de tener instalado y configurado el recolector de elementos no utilizados de referencia circular.

Solución 2:

Probablemente ya hayas resuelto tu problema. Como medida provisional para evitar que el servidor se intercambie o apague, ejecuto el siguiente comando cada hora desde cron:

#!/bin/sh 
sync; echo 3 > /proc/sys/vm/drop_caches

No estoy diciendo que esta sea una solución, solo una forma de mantener las cosas funcionando y minimizar el tiempo de inactividad mientras investiga la causa real de la pérdida de memoria.

Más detalles se pueden encontrar aquí.

http://www.tecmint.com/clear-ram-memory-cache-buffer-and-swap-space-on-linux/


Linux
  1. Cómo habilitar y deshabilitar el módulo PHP curl con Apache en Ubuntu Linux

  2. Cómo encontrar archivos de configuración de MySQL, PHP y Apache

  3. Cómo proteger Apache y SSH con Fail2Ban en CentOS 8

  4. Instalar Apache y PHP en CentOS 7

  5. Cómo instalar PHP-FPM con Apache en Ubuntu 20.04

Cómo instalar Apache con PHP-FPM en Debian 10

Cómo instalar Apache y PHP en OpenSUSE 15.1

Cómo instalar LAMP en Ubuntu 15.10 (Linux, Apache, MySQL y PHP)

Cómo instalar el servidor web OpenLiteSpeed ​​con MariaDB y PHP

Cómo instalar y configurar Apache y PHP en Jelastic Cloud

Cómo instalar y configurar Memcached con Apache y PHP