Foros del Web » Administración de Sistemas » Apache »

Configuracion Apache para mejor rendimiento

Estas en el tema de Configuracion Apache para mejor rendimiento en el foro de Apache en Foros del Web. Hola, soy nuevo en Apache, tengo un VPS con 512mb de RAM garantizada y maxima compartida 2GB. Tengo phpbb 3.0 con unas 3600 visitas unicas ...
  #1 (permalink)  
Antiguo 06/03/2009, 10:21
Avatar de PDD_20  
Fecha de Ingreso: diciembre-2007
Ubicación: España
Mensajes: 413
Antigüedad: 16 años, 4 meses
Puntos: 1
Configuracion Apache para mejor rendimiento

Hola, soy nuevo en Apache, tengo un VPS con 512mb de RAM garantizada y maxima compartida 2GB. Tengo phpbb 3.0 con unas 3600 visitas unicas diarias y me gustaria saber como optimizar la configuracion de Apache, porque a veces me ocurre como a este usuario: http://www.forosdelweb.com/f58/carga-apache-676050/ pero me tarda en vez de 30s, unos 5s por ahora jeje.

Aqui la configuracion por defecto.

StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 4000

Saludos y muchas gracias.
__________________
El Grupo Informático :: Noticias y foros de Informática
¡Ahora por participar se regalan cheques para Amazon!
  #2 (permalink)  
Antiguo 06/03/2009, 13:06
 
Fecha de Ingreso: noviembre-2005
Mensajes: 182
Antigüedad: 18 años, 5 meses
Puntos: 4
Respuesta: Configuracion Apache para mejor rendimiento

Hola,

Soy el que tiene un problema similar al tuyo, el foro es el que hay en la página de tu firma? he entrado y es verdad, te pasa algo parecido a lo mio, no siempre ni tan exagerado como me pasaba a mi.

A mi no me ha vuelto a ocurrir, fue el día que publiqué el post que durante un par de horas no se podía ni entrar (hasta 30'' en cargar), quizás fuese un problema con el maxclients, ahora me lo subieron y parece que no ha vuelto a ocurrir, si que lo noto a veces atascado, pero como he comentado con sysdebian en el otro post, se lo achaco al mysql, mi máquina está soportando unas 35.000 visitas diarias lo cual quieras o no, habrá momentos en los que le cueste, de momento se mantiene estable cargándome la páginas en no más de 1,50 seg dependiendo de la consulta mysql.

Saludos
  #3 (permalink)  
Antiguo 06/03/2009, 16:58
 
Fecha de Ingreso: junio-2008
Mensajes: 39
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Configuracion Apache para mejor rendimiento

Es importante que tengaís en cuenta también los valores de Timeout y Keepalive de las conexiones.

Normalmente, KeepAlive ON, KeepAliveTimeout 3 y Timeout 30 suelen ser buenos valores.

Saludos
  #4 (permalink)  
Antiguo 07/03/2009, 01:22
Avatar de j_aroche
Server Ninja
 
Fecha de Ingreso: agosto-2006
Ubicación: iPhone: 14.624481,-90.487457
Mensajes: 2.066
Antigüedad: 17 años, 8 meses
Puntos: 223
Respuesta: Configuracion Apache para mejor rendimiento

Algunos tips que suelen funcionar para reducir la carga de apache:

* comprimir los archivos JS, CSS y el html antes de enviarlos al cliente, resulta que al transmitir menos datos (y cerrar más rápido las conexiones) compensas el costo de comprimirlos y sales ganando.
* configura el cache para imágenes y demás archivos estáticos, así evitas que sigan solicitándolos por un tiempo.

Esos dos puntos los mencione en este artículo de maestros, alli puedes ver una configuración de ejemplo con la cual empezar.

Considera también:
* Actualizar a apache 2.2 y eliminar los módulos que necesites, lo mismo para php.
* Activar el file cache de phpbb para hacer menos consultas a la base de datos y que queden más recursos para Apache.
__________________
Blog: JavierAroche.com - Twitter: @j_aroche
  #5 (permalink)  
Antiguo 07/03/2009, 08:05
Avatar de PDD_20  
Fecha de Ingreso: diciembre-2007
Ubicación: España
Mensajes: 413
Antigüedad: 16 años, 4 meses
Puntos: 1
Respuesta: Configuracion Apache para mejor rendimiento

Hola.

-La cache de phpbb la tengo tal como viene por defecto, esta bien?

-Esto lo tengo asi: KeepAlive ON, KeepAliveTimeout 2 y Timeout 120.

-En cuanto a lo de chelsae, pues yo en mi caso no se lo achaco a mysql, ya que el maximo de consultas configuradas que tengo son 100 y el record esta en 9 creo. jeje, no tengo tantas visitas.

Ademas el tiempo que tarda es siempre menor a 0.200s segun la informacion de debug de phpbb.

Mi caso creo que se debe a algo de el numero de conexiones descargando(algo de Apache), porque incluso me pasa a veces con paginas estaticas sin ninguna consulta mysql.

Otra pregunta para chelsae, para cambiar el maxclients has tenido que modificar algo mas? Es que me han dicho que hay que compilar o algo asi jeje, no tengo ni idea de Linux xD

Salu2 y gracias.
__________________
El Grupo Informático :: Noticias y foros de Informática
¡Ahora por participar se regalan cheques para Amazon!

Última edición por PDD_20; 07/03/2009 a las 08:31
  #6 (permalink)  
Antiguo 09/03/2009, 02:42
Avatar de sysdebian  
Fecha de Ingreso: octubre-2008
Mensajes: 196
Antigüedad: 15 años, 6 meses
Puntos: 8
Respuesta: Configuracion Apache para mejor rendimiento

Cita:
Iniciado por j_aroche Ver Mensaje
* comprimir los archivos JS, CSS y el html antes de enviarlos al cliente, resulta que al transmitir menos datos (y cerrar más rápido las conexiones) compensas el costo de comprimirlos y sales ganando.
* configura el cache para imágenes y demás archivos estáticos, así evitas que sigan solicitándolos por un tiempo.
Buenas j_aroche.

Yo no tenía entendido esto. Se comprime para reducir el ancho de banda, no el de cpu, eso tenía entenido yo. De hecho, equiparar el gasto de comprimir con el de abrir/cerrar conexiones, no termino de verlo.
He buscado por ahí y he sacado la siguiente conclusión. El gasto de cpu destinado a comprimir con los módulos de apache, es prácticamente despreciable, se utiliza gzip, el cual es bastante rápido, no obstante, en servidores con mucha carga, este gasto despreciable, podría no ser tan despreciable.
He leido por lo alto el artículo que mencionas y he seguido el link a otro artículo, al cual haces referencia en el tema de la compresión, pero no he visto ninguna test que pueda probarlo. ¿ Los habéis sacado de otro sitio ?

PDD_20.
A la hora de ver que necesitas, no puedes basarte en los usuarios diarios, sino en los usuarios concurrentes.
¿ Cuantos usuarios concurrentes máximos ha tenido tu web ?
Cuando te va mal, ¿ donde se van esos recursos ? memoria, cpu ? Si es cpu, donde se van esos recursos ? user, system, iowait ? (si tienes las systats instaladas con sar lo puedes ver). Siendo un vps, echale un ojo tambien al "steal".
En los dos posts que mencionais, solo os basáis en el maxclient como mejora. Como ya dije en el otro, para mi eso es una mínima parte en cuanto a optimización se refiere. Si no tienes recursos para 1000 usuarios, ampliarlo a 2000 no es algo muy inteligente.
__________________
Artigoo: Gestor de contenido online.
  #7 (permalink)  
Antiguo 09/03/2009, 08:57
Avatar de PDD_20  
Fecha de Ingreso: diciembre-2007
Ubicación: España
Mensajes: 413
Antigüedad: 16 años, 4 meses
Puntos: 1
Respuesta: Configuracion Apache para mejor rendimiento

Hola, la CPU y la RAM no se ven nunca cargadas, pero en cambio a veces cuando empieza a aumentar el numero de visitas concurrentes( unas 30 o 40) empieza a tardar unos segundos en responder la web.

Salu2 y gracias.
__________________
El Grupo Informático :: Noticias y foros de Informática
¡Ahora por participar se regalan cheques para Amazon!
  #8 (permalink)  
Antiguo 09/03/2009, 09:20
Avatar de sysdebian  
Fecha de Ingreso: octubre-2008
Mensajes: 196
Antigüedad: 15 años, 6 meses
Puntos: 8
Respuesta: Configuracion Apache para mejor rendimiento

Pues si no ves la cpu o memoria cargada, solo pueden ser dos cosas, o bien la red, que tengas un límite, en ese caso si que te interesa sacrificar cpu y comprimir el contenido que se pueda comprimir, o bien tus gráficas refrescan cada 5 min o mas y no recogen esos picos puntuales.
Cuando te pase eso, mira en tiempo real lo que le pasa a tu sistema, con el comando "uptime" o "top".
__________________
Artigoo: Gestor de contenido online.
  #9 (permalink)  
Antiguo 09/03/2009, 09:22
Avatar de PDD_20  
Fecha de Ingreso: diciembre-2007
Ubicación: España
Mensajes: 413
Antigüedad: 16 años, 4 meses
Puntos: 1
Respuesta: Configuracion Apache para mejor rendimiento

Hola, el limite es una banda de 100mbps. Todos esos comandos que dices donde se deben usar? No encuentro nada de steal y todo eso que me has dicho :S
__________________
El Grupo Informático :: Noticias y foros de Informática
¡Ahora por participar se regalan cheques para Amazon!
  #10 (permalink)  
Antiguo 09/03/2009, 09:24
Avatar de PDD_20  
Fecha de Ingreso: diciembre-2007
Ubicación: España
Mensajes: 413
Antigüedad: 16 años, 4 meses
Puntos: 1
Respuesta: Configuracion Apache para mejor rendimiento

Me gustaria saber que valores debo ponerle a Apache, los tengo como venian por defecto y cambiando creo que he notado mejoria pero no se realmente como deben estar, solo han sido pequeñas pruebas.
__________________
El Grupo Informático :: Noticias y foros de Informática
¡Ahora por participar se regalan cheques para Amazon!
  #11 (permalink)  
Antiguo 09/03/2009, 13:53
Avatar de j_aroche
Server Ninja
 
Fecha de Ingreso: agosto-2006
Ubicación: iPhone: 14.624481,-90.487457
Mensajes: 2.066
Antigüedad: 17 años, 8 meses
Puntos: 223
Respuesta: Configuracion Apache para mejor rendimiento

Hola sysdebian,

Me parece que no logro encontrar donde hicieron la comparación de los tiempos de respuesta sin usar gzip vrs. usandolo. Esto es recomendado hasta por Yahoo, nosotros lo usamos en le webserver de Foros del Web y definitivamente bajamos la carga del CPU. La idea es que es mucho más fácil enviar hasta el cliente una página 18KBs (la portada de FdW) que la misma de 140KBs, sin comprimir.

Recuerda que gzip es un algoritmo muy rápido y aún así logra un buen factor de compresión, y también ten en cuenta que los clientes no tienen conexiones de la misma velocidad del servidor y transmitir un paquete grande toma más tiempo por la fragmentación necesaria.

Por su puesto nosotros tenemos un servidor dedicado y en el caso de PDD_20 es un VPS. Igual, no pierdes mucho con probar unos días a ver que tal resulta.

PDD_20, dudo mucho que tu linea de 100mbps pueda estar saturada, es mucho más fácil que el CPU se sature antes de que el canal de subida de tu servidor ya no pueda más (a menos de que tengas descargas de archivos muy grandes). Sobre los valores de Apache, supongo que tu servidor está configurado para usar MPM_prefork, en todo caso ya no podrás subir el MaxClients sin saturar el CPU.

Lo que dice sysdebian sobre los usuarios concurrentes, lo puedes comprobar al ejecutar httpd status (no se que distribución usas, ni como está configurado tu server) desde la linea de comandos. Debería presentarte una respuesta como esta:
Código:
   Current Time: Monday, 09-Mar-2009 15:50:52 EDT
   Restart Time: Wednesday, 04-Mar-2009 01:25:55 EST
   Parent Server Generation: 14
   Server uptime: 5 days 13 hours 24 minutes 57 seconds
   Total accesses: 30721740 - Total Traffic: 62.0 GB
   CPU Usage: u169.58 s22.04 cu0 cs0 - .0399% CPU load
   64 requests/sec - 135.3 kB/second - 2166 B/request
   203 requests currently being processed, 77 idle workers
Lo importante son el número de clientes que están siendo atendidos (203 en este ejemplo) en ese instante de preferencia cuando notes que la carga está más alta. Según la configuración que has dado al inicio, el máximo de clientes que tu servidor podrá atender son 256.
__________________
Blog: JavierAroche.com - Twitter: @j_aroche
  #12 (permalink)  
Antiguo 09/03/2009, 14:25
Avatar de sysdebian  
Fecha de Ingreso: octubre-2008
Mensajes: 196
Antigüedad: 15 años, 6 meses
Puntos: 8
Respuesta: Configuracion Apache para mejor rendimiento

Buenas J_Aroche.
He leido el articulo de yahoo y estoy de acuerdo en lo que dicen, de hecho, yo lo utilizo también para esos casos. Pero su recomendación es para ahorrar ancho de banda o incrementar la velocidad enviando menos cantidad de datos.
He encontrado un extenso artículo donde hablan del tema http://www.webperformanceinc.com/lib...ts/moddeflate/. Afirman como tu ya comentas que se puede bajar el gasto de cpu haciendo uso de la compresión (además del ancho de banda).. Pero cuidado, esto esta cogido con pinzas. No se hasta que punto su análisis es fiable pero a falta de hacer uno (se pondrá a la cola) o encontrar otro, me remitiré a lo que dicen que parece currado incluso hacen referencia, creo, al que tu comentas de yahoo. Si te fijas hay que tener muy en cuenta el tamaño de archivo que se comprime así como las conexiones concurrentes. También comentan que en servidores donde la cpu esta muy límitada hay que tener cuidado ya que podría ser perjudicial.
Muchas gracias por la info, es muy interesante, a ver si saco un hueco y puedo hacer mis propias pruebas, si encuentras el artículo que comentas a ver si lo puedes linkar o enviarmelo.

PDD_20, de todas formas, esto es como todo, cada aplicación requiere su estudio y su sysadmin tendrá que valorar/probar que es bueno o no para ella. Determina primero cual es tu problema. Yo no descartaría la red, si has dicho que no ves indicios de consumo de cpu o memoria, aunque tengas 100mbits dudo mucho que sean reales o todos para ti y menos en un vps.
Determina que falta de recursos tienes antes de nada. Los comandos que te hemos sugerido son de consola, conectate por ssh y ejecutalos, no tienen ningun peligro.

Saludos.
__________________
Artigoo: Gestor de contenido online.
  #13 (permalink)  
Antiguo 10/03/2009, 09:32
Avatar de PDD_20  
Fecha de Ingreso: diciembre-2007
Ubicación: España
Mensajes: 413
Antigüedad: 16 años, 4 meses
Puntos: 1
Respuesta: Configuracion Apache para mejor rendimiento

Hola, pues he activado el modulo status antes que nada y probando durante unos minutos he visto esto:

Current Time: Tuesday, 10-Mar-2009 16:30:19 CET
Restart Time: Tuesday, 10-Mar-2009 16:11:13 CET
Parent Server Generation: 2
Server uptime: 19 minutes 5 seconds
Total accesses: 3005 - Total Traffic: 8.2 MB
CPU Usage: u3.13 s.49 cu0 cs0 - .316% CPU load
2.62 requests/sec - 7.3 kB/second - 2854 B/request
3 requests currently being processed, 2 idle workers


Tambien he visto que el SS y Req a veces son altos en algunas conexiones.

la CPU veo qeu pasa a veces hasta .666% y leyendo he encontrado que eso es mucho no?

Tambien he buscado y he comprobado qeu si el idle es 0 tarda en cargar. Asi que el problema esta ahi, veo que cuando esta en 0 no responde rapidamente la web.

Salu2 y gracias.
__________________
El Grupo Informático :: Noticias y foros de Informática
¡Ahora por participar se regalan cheques para Amazon!

Última edición por PDD_20; 10/03/2009 a las 11:17
  #14 (permalink)  
Antiguo 11/03/2009, 11:13
Avatar de PDD_20  
Fecha de Ingreso: diciembre-2007
Ubicación: España
Mensajes: 413
Antigüedad: 16 años, 4 meses
Puntos: 1
Respuesta: Configuracion Apache para mejor rendimiento

Hola, encontre la solucion, por fin jeje: http://www.rubenortiz.es/2008/12/11/...za-maxclients/

Muchas gracias de todas formas. Nos vemos.
__________________
El Grupo Informático :: Noticias y foros de Informática
¡Ahora por participar se regalan cheques para Amazon!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:45.