SPWeb

14/05/2004 - 13:58 por MIRo | Informe spam
Alguien sabe pq al instanciar tantas veces a un spweb sube tanto la memoria
del workerprocess?

Que es mejor tener en el sessionstate un spweb o el contexto de cada
usuario?
 

Leer las respuestas

#1 CESAR DE LA TORRE [Microsoft MVP]
14/05/2004 - 21:31 | Informe spam
Para conseguir la máxima escalabilidad es mejor que no mantengas estados, y
menos para objetos de este tipo. (no en sesiones).
En cuanto a la memoria del WorkerProcess, en principio no te preocupes. ¿te
pasa lo que dices haciendo pruebas con simplemente un usuario o algunos,
pero realmente teniendo muy poca carga el servidor IIS? (incluso con un solo
usuario ejecutando un bucle instanciando bastantes veces, es poca carga).
Probablemente el aumento que ves de consumo de memoria por e worker-process
es porque los assemblies de SharePoint 2003 al estar desarrollados en .NET
(el modelo de objetos de SharePoint 2003), la memoria de los objetos no
utilizados (marcados para borrar) de los procesos no se libera realmente
hasta 'que pasa' el Garbeage Collector de .NET, lo cual lo decide .NET
Framework dependiendo de la carga del servidor y de la memoria disponible
del servidor.
Si por ejemlo haces pruebas de carga con Application Center Test Tool u otra
herramienta de pruebas de carga (simulando por ejemplo 100 usuarios
simultáneos dando caña a una página de SharePoint que utilice el objeto
spweb), deberías ver que la memoria del proceso worker del Application Pool
sube y baja a modo de 'sierra' de una forma mas o menos regular, porque
detecta que tiene mucha carga y regularmente va liberando memoria con el
Garbeage Collector. Si esto no te pasase al hacer pruebas de carga, sino que
subiera la memoria consumida de forma indefinida aun haciendo pruebas de
carga, entonces si que sería un problema grave.
Te recomiendo en cualquier caso que los objetos del modelo de objetos de
SharePoint 2003 los crees a nivel de página, cada vez que se llama a una
página, y no crees estados para estos objectos (utiliza las menos posibles
sesiones). El modo de trabajo 'stateless' es el mas escalable y aguanta
mucho mejor el aumento masivo de usuarios simultáneos, (aumentando entonces
la escalabilidad vertical añadiendo mas procesador o mas memoria o
aumentando la escalabilidad horizontal añadiendo mas servidores SharePoint
balanceados con NLB (Network Load Balancing) ).

César de la Torre
[Microsft MVP - .NET XML Web Services]
[MCSE] [MCT]

Renacimiento
Microsoft GOLD Certified Partner
www.renacimiento.com


"MIRo" wrote in message
news:
Alguien sabe pq al instanciar tantas veces a un spweb sube tanto la


memoria
del workerprocess?

Que es mejor tener en el sessionstate un spweb o el contexto de cada
usuario?



Preguntas similares