Cómo comprender y optimizar la memoria utilizada por cada proceso de Apache

Cómo comprender y optimizar la memoria utilizada por cada proceso de Apache

Conozco el método para obtener la memoria promedio utilizada por cada proceso de Apache2 usando ps. Lo he observado y está llegando a tener alrededor de 18 MB (aunque parecía haber aumentado en los últimos 2 días de 18 MB promedio a 25 MB).

Nuestro servidor ofrece una API que acepta algunos datos y los almacena en una base de datos mysql. La API está escrita en PHP. He usado las funciones PHP mem_get_usage y mem_get_peak_usage para comprender el uso de la memoria, pero no se acercan a los 18 MB... (en su mayoría se muestran por debajo de 1 MB)

Así que no entiendo qué consume esta enorme memoria por proceso de Apache. Esto se ha convertido en un cuello de botella ya que nuestra RAM total es limitada y con este consumo nos vemos obligados a limitar maxrequestworkers, lo que genera retrasos en el servicio a los clientes cuando hay mucho tráfico.

Salida típica de ps:

www-data 30024  0.0  0.3 494384 26124 ?        S    04:27   0:03 /usr/sbin/apache2 -k start
www-data 30077  0.0  0.3 494368 26136 ?        S    04:28   0:04 /usr/sbin/apache2 -k start
www-data 30078  0.4  0.3 494360 25960 ?        S    04:28   0:21 /usr/sbin/apache2 -k start
www-data 30080  0.1  0.3 494376 26140 ?        S    04:28   0:05 /usr/sbin/apache2 -k start
www-data 30115  0.2  0.3 494448 26180 ?        S    04:28   0:11 /usr/sbin/apache2 -k start
www-data 30124  0.1  0.3 494376 26212 ?        S    04:28   0:07 /usr/sbin/apache2 -k start
www-data 30132  0.0  0.3 494376 26108 ?        S    04:28   0:03 /usr/sbin/apache2 -k start
www-data 30135  0.0  0.3 494376 26164 ?        S    04:28   0:04 /usr/sbin/apache2 -k start
www-data 30219  0.0  0.3 494352 26108 ?        S    04:29   0:03 /usr/sbin/apache2 -k start

¿Alguna sugerencia sobre cómo monitorear el uso de memoria por proceso apache2 y cómo reducirlo/optimizarlo?

información relacionada