Editamos el archivo /etc/httpd/conf/httpd.conf (uso centos, en otras distribuciones puede variar la ruta). Hay varias directivas que no me gustan como se quedan por defecto, así que vamos a cambiarlas: KeepAliveTimeout por defecto viene a 120 (2 minutos).
Lo he bajado a 30. Esto es el tiempo que apache va a estar procesando una petición, como máximo. Dos minutos es demasiado. StartServer, MinSpareServers, MaxSpareServers, ServerLimit, MaxClients y MaxRequestsPerChild.
Estas también vienen con valores demasiado altos para servidores que no tengan demasiado tráfico.
Los he puesto así:
StartServers 1
MinSpareServers 2
MaxSpareServers 3
ServerLimit 100
MaxClients 100
MaxRequestPerChild 4000
Una vez hecho esto, reiniciamos apache con service httpd restart
Podemos ver que el consumo de RAM ha pasado de 800 megas a unos 100 megas.