Foros del Web » Programando para Internet » ASP Clásico »

Mi servidor va lento... ¿sessiones?

Estas en el tema de Mi servidor va lento... ¿sessiones? en el foro de ASP Clásico en Foros del Web. Vereis, ultimamente el server esta empezando a ir lento... Y la verdad, es que no encuentro un motivo aparente de esto... Pero leyendo y leyendo, ...
  #1 (permalink)  
Antiguo 17/06/2003, 08:33
Avatar de meru-kun  
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 854
Antigüedad: 21 años, 5 meses
Puntos: 0
Mi servidor va lento... ¿sessiones?

Vereis, ultimamente el server esta empezando a ir lento... Y la verdad, es que no encuentro un motivo aparente de esto...

Pero leyendo y leyendo, he descubierto que las variables de session pueden hacer que el server se ralentice...

Digamos que no recibo muchas vistias al dia (de momento...unas 60 mas o menos ¡¡ estamos empezando !! ), pero si que utilizo las variables de session...

Cada vez que alguien inicia session, recibe, al menos... 3 variables de session (3 o 4)...

¿Podria esto ser la causa de la lentitud del servidor? (se podria estar sobrecargando la memoria...)

P.D: En el global.asa tengo:
Application_OnStart()
Session.TimeOut = 15
Y ademas, cada vez que alguien se "desloguea", le borro todas las variables de session...
__________________
Tu portal de manga y anime.
  #2 (permalink)  
Antiguo 18/06/2003, 04:02
Avatar de Subotai  
Fecha de Ingreso: mayo-2003
Ubicación: Irúnforge
Mensajes: 198
Antigüedad: 20 años, 11 meses
Puntos: 1
Wenas
dices que el servidor va lento?
realizas muchas consultas a la bd?
cuantos recordsets mantienes abiertos en tu pagina?
quizas no sea problema de la pagina, si no de la bd, que motor de bd usas?
...
son tantas las razones por las que podria ralentizarse....
danos mas pistas
  #3 (permalink)  
Antiguo 18/06/2003, 04:25
 
Fecha de Ingreso: marzo-2001
Ubicación: Gran Canaria
Mensajes: 381
Antigüedad: 23 años, 1 mes
Puntos: 2
tu base de datos ha crecido demasiado?
tienes indices creados para los campos criticos de busqueda de las tablas?





ToKaTa.


P.D.:Hombre, la verdad es que no diria nunca que puede ser por culpa de las variables de sesion......pero si alguien cree que si y me lo explica pues se lo agradeceria....
  #4 (permalink)  
Antiguo 18/06/2003, 09:02
Avatar de meru-kun  
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 854
Antigüedad: 21 años, 5 meses
Puntos: 0
Esto... se me ocurre que siempre que abro un recordset
Set MR = Server.CreateObject("ADODB.RECORDSET")
MR.open strSQL, MyConn
[...]

Nunca lo cierro (MR.CLOSE) ... ¿podria originar eso el ralentizamiento?
__________________
Tu portal de manga y anime.
  #5 (permalink)  
Antiguo 19/06/2003, 02:16
Avatar de Subotai  
Fecha de Ingreso: mayo-2003
Ubicación: Irúnforge
Mensajes: 198
Antigüedad: 20 años, 11 meses
Puntos: 1
Bueno te voy a dejar la misma respuesta que le deje a DelaVega te viene como anillo al dedo

uff acabo de leer el mensaje , igual me he extendido un poquito.... bueno ahi te va:
Cada vez que abres un recordset, lo que estas haciendo es crear un conjunto de variables (como un vetor) en memoria, si no cierras el Rcset estarán e tu memoria hasta que se cierre la conexión con la bd.
Hay maneras de optimizar este uso de la memoria.
Lo mas sano es utilizar el menor espacio de memoria posible, es decir optimizar el uso de la memoria usando el menor numero de variables posibles, pero claro, cuando decimos memoria, a que tipo de memoria nos referimos?
¿donde se ejecuta una pagina ASP?en el servidor, ta claro, al cliente solo le llega codigo html, entonces hay que darse cuenta de que todas las variables que uses estaran en el servidor, pero un servidor es algo mas complejo.
Si le preguntas a un licenciado en informatica te dira que un servidor es un proceso , pero ese proceso se ejecuta en una maquina y en esa maquina cuantos procesos hay? y a donde quiero llegar con toda esta parrafada, pues que las bases de datos no tienen memoria infinita (al menos en bds del tipo SQL Server,Informix...y si nos metemos en Oracle eso es todo un arte!! Access no tengo ni idea) sino que tienen un espacio maximo asignado (el resto de la memoria RAM es para el uso de los demas procesos, ya sean otras bds, como procesos de sist. operativo como otra aplicacion que se te ocurra) y cuando ese espacio se llena comenzará a paginar los datos que no le entran en la RAM y los mandará a disco, entoces todo ira mas lento .
Asi que si en tu pagina creas un monton de recordsets para cada consulta por simple que sea y los mantienes abiertos hasta que se termina de cargar la pagina, el servidor "sufre" y si tod@s l@s programadores/as le hacemos sufrir pues...ira mas lento que el caballo del malo y eso no nos interesa na de na .
Por lo tanto, la idea es que todo el espacio de memoria que necesitemos utilizar sea utilizado el menor tiempo posible Y QUE NO ESTE DUPLICADO JAMAS.
Asi que mi consejo es que cada vez que necesites usar recordsets utilices Getrows (para dejar los valores del recordset en un vector normal y corriente)ya que tendras los mismos datos que ocupan el mismo tamaño en memoria pero...no en el espacio de memoria asignado a la bd sino en el espacio general que por norma general suele ser mucho mayor, es decir,todas tus variables las gestionara el sistema operativo (que POR NORMA GENERAL suelen gestionar mejor que los motores de bds) y asi es menos provable que acaben paginadas en disco.
Pero claro si hicieramos esto con todos los recordsets que usemos, habra un precioso espacio de memoria reservado a la bd sin usar, asi que lo mejor es escoger que recordset va a parar al ambito de memoria general y cual se queda en el ambito de la BD.
Una buena opcion es dejar en el ambito de la Bd los mas "generales" a lo que necesitas acceder muchas veces a lo largo de tu Aplicacion Web.
Esta es una manera de "ayudar" al servidor, es decir, a la maquina donde reside el servidor, de esta manera las cosas fucionaran menos peor .
No se si me he dejado alguna cosilla pero no nos vamos a complicar mas todavia, no? jejeje si me he equivocado en algo por favor avisadme, es un tema que me interesa muchiiiiiismo.
agur
  #6 (permalink)  
Antiguo 27/09/2010, 17:10
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Mi servidor va lento... ¿sessiones?

Cita:
Iniciado por Subotai Ver Mensaje
Bueno te voy a dejar la misma respuesta que le deje a DelaVega te viene como anillo al dedo

uff acabo de leer el mensaje , igual me he extendido un poquito.... bueno ahi te va:
Cada vez que abres un recordset, lo que estas haciendo es crear un conjunto de variables (como un vetor) en memoria, si no cierras el Rcset estarán e tu memoria hasta que se cierre la conexión con la bd.
Hay maneras de optimizar este uso de la memoria.
Lo mas sano es utilizar el menor espacio de memoria posible, es decir optimizar el uso de la memoria usando el menor numero de variables posibles, pero claro, cuando decimos memoria, a que tipo de memoria nos referimos?
¿donde se ejecuta una pagina ASP?en el servidor, ta claro, al cliente solo le llega codigo html, entonces hay que darse cuenta de que todas las variables que uses estaran en el servidor, pero un servidor es algo mas complejo.
Si le preguntas a un licenciado en informatica te dira que un servidor es un proceso , pero ese proceso se ejecuta en una maquina y en esa maquina cuantos procesos hay? y a donde quiero llegar con toda esta parrafada, pues que las bases de datos no tienen memoria infinita (al menos en bds del tipo SQL Server,Informix...y si nos metemos en Oracle eso es todo un arte!! Access no tengo ni idea) sino que tienen un espacio maximo asignado (el resto de la memoria RAM es para el uso de los demas procesos, ya sean otras bds, como procesos de sist. operativo como otra aplicacion que se te ocurra) y cuando ese espacio se llena comenzará a paginar los datos que no le entran en la RAM y los mandará a disco, entoces todo ira mas lento .
Asi que si en tu pagina creas un monton de recordsets para cada consulta por simple que sea y los mantienes abiertos hasta que se termina de cargar la pagina, el servidor "sufre" y si tod@s l@s programadores/as le hacemos sufrir pues...ira mas lento que el caballo del malo y eso no nos interesa na de na .
Por lo tanto, la idea es que todo el espacio de memoria que necesitemos utilizar sea utilizado el menor tiempo posible Y QUE NO ESTE DUPLICADO JAMAS.
Asi que mi consejo es que cada vez que necesites usar recordsets utilices Getrows (para dejar los valores del recordset en un vector normal y corriente)ya que tendras los mismos datos que ocupan el mismo tamaño en memoria pero...no en el espacio de memoria asignado a la bd sino en el espacio general que por norma general suele ser mucho mayor, es decir,todas tus variables las gestionara el sistema operativo (que POR NORMA GENERAL suelen gestionar mejor que los motores de bds) y asi es menos provable que acaben paginadas en disco.
Pero claro si hicieramos esto con todos los recordsets que usemos, habra un precioso espacio de memoria reservado a la bd sin usar, asi que lo mejor es escoger que recordset va a parar al ambito de memoria general y cual se queda en el ambito de la BD.
Una buena opcion es dejar en el ambito de la Bd los mas "generales" a lo que necesitas acceder muchas veces a lo largo de tu Aplicacion Web.
Esta es una manera de "ayudar" al servidor, es decir, a la maquina donde reside el servidor, de esta manera las cosas fucionaran menos peor .
No se si me he dejado alguna cosilla pero no nos vamos a complicar mas todavia, no? jejeje si me he equivocado en algo por favor avisadme, es un tema que me interesa muchiiiiiismo.
agur
hola rengo un problema partacido toda mi pagina funciona muy bien pero cuando comienzo a gregar mas registro a la base de datos la lectura d ela pagina se vuelve mas lenta alñ punto de votar al servidor la pagina busca informacion de productos en la base de datos y la base tiene un millon trecientos registro cual es l problema memoria ran prosesados ojala me puedan ayudar
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

SíEste tema le ha gustado a 3 personas




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