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?