Proceso "httpd" de Apache, utilizando la memoria de todos mis servidores

9

Mi pequeña instancia ec2 con 1.7 GB de memoria, que ejecuta Amazon AMI basada en CentOS, tiene un problema con Apache que utiliza demasiada memoria de la que debería. Si echa un vistazo a la captura de pantalla, el uso de la memoria estará en 90-100% hasta que reinicie el servicio httpd, donde comenzará de nuevo, aumentando su regreso a más del 90%.

ingrese la descripción de la imagen aquí

Realmente agradecería alguna ayuda sobre cómo localizar el problema. ¿Es acaso este comportamiento apache "normal", utilizar toda la memoria disponible? ¿O hay una posible fuga que tengo que cazar? En este momento estoy un poco perplejo sobre lo que podría estar pasando.

Estamos utilizando el prefork de Apache MPM, y no SQL ni nada similar, solo apache. El sitio web está aquí .

Amivit
fuente
1
No parece utilizar ningún intercambio, ¿cuál es el problema?
HTTP500
¿No debería ser preocupante el hecho de que esté usando tanta memoria? Disculpe mi experiencia de novato, supongo que podría ser una suposición incorrecta. ¿Tal vez es un comportamiento normal y que Apache está diseñado para usar toda la memoria que puede agarrar, a pesar de ser un sitio web de poco tráfico?
Amivit
1
Me di cuenta de que estás usando NewRelic, que también puede registrar el tiempo que pasas en apache (puede ser útil) si agregas esta línea a tu httpd conf: RequestHeader set X-Request-Start "%t"si aún no lo has hecho. Aparecerá como "Solicitud de cola" cuando vaya a Servidor de aplicaciones> Descripción general, podría ayudarlo a llegar al fondo del problema.
KM.

Respuestas:

8

Como dijo HTTP500, probablemente no debería preocuparse por ello a menos que la máquina se esté ahogando. ¡Mira la Ayuda! ¡Linux se comió mi RAM! . No es una situación análoga, ya que tiene procesos en lugar de buffers que usan la RAM, pero no está muy lejos: la RAM física de su máquina es un recurso para ser utilizado, ya sea con buffers de kernel o procesos de trabajo de Apache de repuesto para manejar rápidamente la entrada peticiones. Si no está utilizando RAM, ha pagado de más por el tamaño de su caja.

De todos modos, si quieres jugar con la configuración de MPM, la documentación de Apache es http://httpd.apache.org/docs/current/mod/prefork.html

Tal vez pueda reducir MinSpareServers, StartServers, etc., ya que ha declarado que el sitio tiene poco tráfico. Entonces tendrá más RAM libre para ser consumida por los buffers del núcleo para sus nefastos propósitos.

cjc
fuente
4

Linux usando toda su memoria es normal, la memoria que no está en uso de lo contrario se reutiliza como caché de disco. ver: Linux se comió mi carnero

Puede verificar esto mirando la salida de free -my esperar ver algo como esto:

             total       used       free     shared    buffers     cached
Mem:          7889       6887        101          0        106       2307
-/+ buffers/cache:       5373       3416
Swap:         1903         17       1886

la línea +/- buffers / cache es la que desea. Agrega RAM en caché de forma gratuita para darle una mejor idea de cuánta memoria está realmente disponible. En este caso, desea prestar atención al número 3416, no al 101.

estofado
fuente