Re: Retardo en la carga de paginas

Lo tengo montado con ngnix y un cluster de mongrels sobre un
linux(ubuntu server) y lo tenenmos alojado en la empresa en la que
trabajo, ah , y con Rails 2.
Siento si no fui más conciso en la primera pregunta, pero es que como me
parece un error totalmente aleatorio no sabia exactamente que datos
debía aportaros.
mis disculpas.

pero es que como me parece un error totalmente aleatorio no sabia exactamente que datos
debía aportaros.

la verdad es que sí parece aleatorio del todo… con estos datos es
difícil hacer el adivino, pero si lo que tienes es varios mongrels y de
repente una petición te va muy lenta y el resto te van bien, se me
ocurren cinco cosas así a priori

a) tráfico
b) un mongrel se ha escaqueado
c) carga de máquinas
d) base de datos
e) red

a) si tenías muchas peticiones en ese momento (ten en cuenta que tu
aplicación puede tener mucho tráfico sin que haya usuarios, por ejemplo
cuando entra el googlebot a indexar), te toca quedarte esperando en la
cola del mongrel hasta que sea tu turno

b) un mongrel se ha escaqueado. Un mongrel (o varios) por lo que sea ha
dejado de contestar. Si tienes la mala suerte de encolarte en ese
mongrel, ya tienes un problema. Si luego funciona bien, o bien es que
has ido por el balanceador a otro mongrel, o bien tienes un sistema de
monitorización (god, monit, nagios, loquesea) que cuando ve que se
atonta lo rearranca y por eso no te das cuenta

c) carga de máquinas. Tus mongrels han crecido en memoria y hay swap,
por ejemplo. En ese caso al rearrancar se apañaría. De nuevo puede que
no lo veas porque tienes alguien que lo hace por ti. También puede pasar
que en ese momento hayas lanzado una rake, un cron, un proceso de envío
de correos masivos, un indexador para un buscador, etc… que te consuma
recursos

d) base de datos. Posibles bloqueos que te estén haciendo que las
consultas se encolen. Por ejemplo, si tienes lanzado un dump de mysql es
posible que tengas un lock de toda una tabla. Hasta que no termines, no
puedes leer. O que una de tus acciones haga una inserción/update larga
que bloquee lecturas… etc

e) red. En los servidores o en el adsl que te lleva a tu casa. Lo mismo
en el servidor todo se procesa rápido, pero luego le cuesta salir por
problemas de red.

No tengo ni idea de si los tiros pueden ir por ahí, pero son unas
cuantas cosas que podrían ser causas de que de repente vaya lento y de
repente no. Y ninguna parece ser de rails, así que explicaría que sin
tocar código de repente mejore

suerte,


javier ramírez

…i do ruby on rails development in madrid, spain, at
http://www.aspgems.com
…you can find out more about me on http://formatinternet.wordpress.com
and http://workingwithrails.com/person/5987-javier-ramirez

Te pasa en desarrollo y producción?

Te pasa cuando haces la petición a http://localhost:3000, a
http://tudominio.com/ o a ambos? Independientemente de la respuesta de
la pregunta anterior?

En casa me pasaba una cosa parecida, al final no tenía que ver ni con la
aplicación ni con el servidor, sino con el router ADSL que hacía
peticiones de DNS con cada request y se demoraba muchisimo. Hay que
tener en cuenta que los routers que dan los proveedores de servicio
vienen configurados para hacer de “servidores DNS” pero con la poca
memoria que tienen no todos lo hacen bien. Mi solución fue montar un dns
que hiciera caché en mi red y un servidor DHCP y dejar el router solo
para enrutar. La velocidad de mi red mejoró 3 huevos.

Solo un tip… por si acaso.

Saludos,

Jorge.

gracias por vuestras sugerencias, voy a revisar los logs haber que
dicen.
Que el problema sea de BD lo descarto porque pasa con cualquier link que
pulses , sin necesidad de que haya peticiones a DB.
que sea por exceso de peticiones también lo descarto pues no hay muchos
usuarios, y además la aplicación es interna de la empresa, así que los
googlebots no pueden acceder.
Comprobaré el resto de las opciones que me habeis sugerido.
De nuevo gracias.
El vie, 28-11-2008 a las 11:20 +0100, javier ramirez escribió: