 |
Si buscas en google como optimizar Apache, te encontrarás multitud de webs donde se explica que cambios se han de efectuar por obtener un servidor web que pueda soportar 1000 visitas el minuto, etc... Pero en ninguna parte se explica como optimizar Apache para no gastar excesius recursos en un servidor pequeño y poco frecuentado. El servidor que albergaba esta web, era un ibook g3 300mhz con 196mb. Tenia corriendo varios servicios: apache, mysql, php, ssh, ftp, gnump3d y a veces incluso mldonkey. Si Apache se comía el 80% de los recursos, el ordenador se colapsaba y todo hiba lento. Asi que decidí aplicar ciertas configuraciones para gastar el mínimo posible con un rendimiento aceptable en relación a las visitas.
|
/etc/apache2/apache2.conf
| KeepAliveTimeout 3 |
<IfModule prefork.c> StartServers 1 MinSpareServers 1 MaxSpareServers 1 MaxClients 10 MaxRequestsPerChild 0 </IfModule> |
<IfModule worker.c> StartServers 1 MaxClients 3 MinSpareThreads 1 MaxSpareThreads 1 ThreadsPerChild 1 MaxRequestsPerChild 0 </IfModule> |
<IfModule perchild.c> NumServers 1 StartThreads 1 MinSpareThreads 1 MaxSpareThreads 1 MaxThreadsPerChild 1 MaxRequestsPerChild 0 AcceptMutex fcntl </IfModule> |
Con esto conseguirás que Apache sólo te obra 3 procesos, con lo que gastará menos memoria ram. Pero como he dicho antes, esta configuración es buena para servidores poco frecuentados, si quisieramos configurar un servidor por recibir miles de visitas diarias, tendriamos que hacer todo lo contrario, abrir muchos procesos para repartir la carga.
/etc/sysctl.conf
vm.swappiness=10
Para evitar el uso indiscriminado de swap (cosa que relentiza el sistema).