2010-12-01 28 views
6

Estoy probando el rendimiento de la memoria caché de la aplicación. Para hacer esto, desde mi máquina local, estoy presionando el host de caché en la LAN. Este host de caché se ejecuta en Windows Server 2008 y, salvo en lo esencial, no tiene nada instalado. Tiene 8 gigas de RAM. También es un servidor virtual VMware,C# memory leak?

Tan pronto como toco el host de caché, puedo ver que la memoria utilizada aumenta. Pero algo muy sospechoso está sucediendo en alguna parte. el total de bytes de datos primarios que se utilizan es 1.5 Gigs. El tamaño del objeto es 1.744 bytes (usando el generador de perfiles ANTS). El número total de objetos es 2.521.451. He desactivado el desalojo. Pero, esto es interesante, tan pronto como el servidor alcanza el estado de aceleración, puedo ver que la RAM del servidor se está utilizando en 7.72 Gigs, pero aparte de la memoria caché distribuida que usa 1.8 gigs, no hay otra aplicación que use una cantidad tan alta de RAM.

Estoy utilizando Visual Studio 2010, y Estoy insertando y la lectura de los objetos en paralelo

La pregunta que quería hacer es:

dónde va mi memoria? El servidor en el estado acelerado dice que estoy usando 7.72 gigas de la memoria asignada mientras que en el administrador de tareas, puedo ver que apenas 3 Gigs están siendo utilizados (si agrego toda la memoria del proceso en ejecución)

+0

¿Está ejecutando VS en el servidor? ¿Y cuánta memoria está siendo utilizada antes de comenzar/después de detener su aplicación? –

+4

¿De qué columnas provienen los números de uso de memoria? Porque 2,521,451 objetos con 1744 bytes de tiempo dan 4GB. – Gabe

+0

No es realmente una respuesta directa, pero dado que está utilizando esta cantidad de datos, que podría estar interesado en un serializador más eficiente (y gratis). Déjame saber si es así ... –

Respuesta

1

No estoy completamente seguro de esto, ya que no está claro en su pregunta dónde está viendo los diferentes montos de uso de la RAM (host de VMWare o host).

Al ejecutar VMWare Server en Server 2008, el uso de memoria reportado por el Administrador de tareas en el host no tiene en cuenta los usos individuales de Máquinas virtuales. Me di cuenta de esto hace un tiempo, y no estoy seguro de si es un error/problema conocido/por el comportamiento de diseño.

Ejemplo:: Tengo 3 máquinas virtuales ejecutándose en mi máquina Server 2008, cada una ejecutando una variante diferente de Windows, con las aplicaciones ejecutándose. No se está ejecutando nada en el host, aparte de las máquinas virtuales en este momento. El administrador de tareas en el host informa que se usaron ~ 2GB de RAM, mientras que los invitados están usando al menos 1GB cada uno.

¿Puedes aclarar exactamente de dónde vienen los números de uso de tu RAM?

+1

. Estoy mirando el administrador de tareas de mi servidor, que es una máquina virtual, que ejecuta el servidor de Windows 2008 ... para mis números de uso de RAM. Los otros números específicos relacionados con la memoria caché provienen de los contadores de evaluación de AppFabric – Gagan

+1

. Estoy buscando el Administrador de tareas en el invitado (la máquina virtual que se ejecuta en el host). Además, no estamos ejecutando VMWare en un servidor de Windows, estamos ejecutando la empresa ESXi Creo que está hablando de un problema con el uso de memoria en la virtualización en el host, mientras que estoy hablando de una pérdida de memoria en AppFabric en el huésped. – Gagan

+1

Ah, vale, disculpas. No pude entender exactamente cuál era tu situación. – Jaymz

3

Gagan, si todavía tiene este problema, ¿puede descargar el Monitor de procesos de SysInternals? Lo puedes encontrar here. Ejecútelo y agregue columnas para bytes privados de memoria, conjunto de trabajo y tamaño virtual. Los bytes privados máximos y el conjunto de trabajo no dolería, y hay otras columnas de memoria que puede agregar para divertirse:)

Administrador de tareas no le da el tamaño virtual (Windows 7 le permite agregar Tamaño de compromiso, don No sé si el Servidor 2008 también tiene eso). Esto debería darle una idea más clara de hacia dónde va la memoria.

Háganos saber si eso ayuda o necesita más ayuda fijación abajo dónde va su memoria!

+2

Gracias por la información @ James B .. Ya estaba usando eso ... Creo que hay una pérdida de memoria en algún lugar con MS AppFabric ... He informado al chicos @ MS sobre esto ... gracias por la información .. chicos! – Gagan