Les voy a pasar un dato que me ayudó enormemente en pos de mejorar el rendimiento de uno de los servidores que tengo, al cual hace poco actualicé a 8 GB de memoria… y es que, más allá de que se pague por soporte y upgrades, no hay persona que se preocupe más que uno mismo.

El problema que me estaba afectando era que la memoria del servidor subía paulatinamente con el correr del tiempo, alcanzando un punto en el que se generaba un cuello de botella que hacía colapsar el sistema, provocando una caída, la cual solamente se podía evitar “temporalmente” reiniciando el servicio Apache y MySQL, o sea, reseteando el uso de la memoria. Sin embargo, imaginen que en horas pico, el reseteo tenía que hacerse más de una vez.

No soy un gran experto en administración de redes, y por eso recurrí a una búsqueda en Google, sabiendo de antemano que encontraría una respuesta en algún foro, porque siempre, lo que le pasa a uno, ya le pasó a otro… es increíble lo útil que resultan los foros especializados de discusión en este marco, y los hay en para todos los ámbitos.

Llegué entonces a un tema en Web Hosting Talk, a partir de este otro. Pueden visitarlo para tener mayores detalles… y logré dar con una solución, a partir de modificaciones en el archivo httpd.conf:


KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 3
StartServers 15
MinSpareServers 10
MaxSpareServers 20
MaxClients 250
MaxRequestsPerChild 100

Vale decir que MaxClients lo subí bastante, creo que en 700 si no me equivoco, y creo haber dejado MaxRequestsPerChild en 300. Esto (espero no confudirme) tiene que ver con las consultas en MySQL, que quedan en una especie de “espera“, y de este modo, se las “corta” para evitar que se acumulen. Me sirvió muchísimo estos datos, así que me pareció interesante compartirlo :)