Como entender e otimizar a memória usada por cada processo Apache

Como entender e otimizar a memória usada por cada processo Apache

Estou ciente do método para obter a memória média usada por cada processo do Apache2 usando ps. Eu observei isso e está chegando a cerca de 18 MB (embora pareça ter aumentado nos últimos 2 dias, de 18 MB em média para 25 MB).

Nosso servidor está servindo uma API que aceita alguns dados e os armazena em um banco de dados mysql. A API é escrita em PHP. Eu usei as funções PHP mem_get_usage e mem_get_peak_usage para entender o uso de memória, mas elas não chegam nem perto de 18 MB. (a maioria mostra abaixo de 1 MB)

Então não entendo o que está consumindo essa enorme memória por processo do Apache. Isso se tornou um gargalo pois nossa RAM total é limitada e com esse consumo somos obrigados a limitar maxrequestworkers o que traz lag no atendimento dos clientes quando há alto tráfego.

Saída típica do 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

Alguma sugestão sobre como monitorar o uso de memória por processo Apache2 e como reduzi-lo/otimizá-lo?

informação relacionada