Lleva un tiempo con esto anotado, pero no había conseguido sacar ni un hueco para buscar información. El hecho es que, hace poco pusimos un nuevo servidor, el cual sirve unos 20 dominios. El servidor es un cloud básico, con 1 giga de RAM, sobrado para el tráfico que alberga. El tema es que el consumo de RAM siempre estaba prácticamente al 100% incluso cuando había poco tráfico, llegando alguna vez, a bloquear el servidor.Investigando un poco y viendo la configuración por defecto que deja Plesk cuando lo instalas desde cero, me encontré que usaba una configuración de Apache un poco “bestia” para usos normales. Así que manos a la obra.

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 una burrada de 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

y listo. Como muestra, os dejo una captura del módulo Hearth Monithoring de Plesk 10. Muestra la última semanachart-image

Podemos ver que el consumo de RAM ha pasado de 800 megas a unos 100 megas.