Mi sitio recibe mucho tráfico durante 2 horas al día (2000 visitas por minuto). El resto del día recibe menos tráfico (500 visitas por minuto). He estado experimentando con los valores de MaxClients y MaxSpareServers, pero todavía tengo tiempo de inactividad durante las horas punta.

¿Cómo puedo calcular los mejores valores para mi configuración en función de la cantidad de RAM que tengo?

Cada proceso tiene como 36-40 M de memoria.

             total       used       free     shared    buffers     cached
Mem:          3096        793       2302          0          0          0
-/+ buffers/cache:        793       2302
Swap:  

      0          0          0

Valores que estoy usando ahora

<IfModule prefork.c>
StartServers 10
MinSpareServers 22
MaxSpareServers 60
ServerLimit 90
MaxClients 90
MaxRequestsPerChild  400

ACTUALIZACIÓN: encontré esto gracias a mi proveedor de alojamiento.

http://kb.mediatemple.net/questions/246/(dv)+CÓMO:+Afinación+del+rendimiento+de+Apache+básico+(httpd)

Tengo el paquete extremo y usé 190 en MaxClients en lugar de 200. Lo probé durante media noche y recibí algunos mensajes de error de malloc en la línea de comando, pero usé el comando gratuito y obtuve como 800 M en la columna libre.

Respuesta1

Si su servidor sufre picos, también puede deberse a que Apache maneja el proceso y la creación de subprocesos muy lentamente (en el modo mpm_prefork es 1 nuevo subproceso por segundo). Si conoce sus necesidades de "alto tráfico" (digamos que es un proceso 200), dígale a Apache que obtengasiempreEstos 200 procesos están listos, incluso si no hacen nada el 90% del tiempo. Estarás listo cuando llegue la gente.

Mira esta práctica presentación (antigua pero genial) http://www.techpresentations.org/Hacking_Apache_HTTP_Server_at_Yahoo!

No se necesitan StartServers, MaxSpareServers, MinSpareServers, solo MaxClients (tamaño de grupo constante)

Respuesta2

La respuesta depende en gran medida del tipo de contenido que esté ofreciendo. ¿Es contenido dinámico o estático? ¿Es una amplia gama de contenidos o un solo documento?

Puedes usarmemcachedpara almacenar los documentos en la memoria, lo que le permitirá escalar considerablemente (eliminando un cuello de botella en el disco), pero todo depende de cuánta RAM tenga y si el contenido cambia mucho.

Respuesta3

Es necesario realizar pruebas según el hardware de su servidor (especialmente la memoria) y la eficiencia del sitio que está ejecutando. ¿Qué sucede cuando tienes tiempo de inactividad? ¿Estás alcanzando estos límites que te has fijado? ¿Te estás quedando sin memoria?

Respuesta4

Si se encuentra en una situación con mucha restricción de memoria (VPS), es posible que deba reducir los maxclients predeterminados para evitar la muerte del intercambio.

Si no lo eres,no lo toques.

Ajustar a los hijos de Apache es una de esas cosas, como compilar un kernel de forma personalizada, donde la gente abrumadoramente hace más daño que bien, incluso si el daño es simplemente perder una tarde sin ningún beneficio. ¡Resulta que los chicos del proyecto httpd en Apache son bastante buenos en lo que hacen! Quiero decir, ¿a quién se le hubiera ocurrido?

información relacionada