2009-02-25 10 views
6

Estoy buscando un modo para que la aplicación supervise la cantidad de memoria que está usando, de modo que pueda grabarla en un archivo de registro cada hora y mantener un ojo en el uso de las aplicaciones.Supervisión de la memoria de la aplicación ASP.NET desde la aplicación

Todo está alojado para que podamos hacer cambios en el sistema para ver qué está sucediendo, por lo que la solución deberá ser desde el código de la aplicación.

Es posible que en el futuro usemos la información de la memoria para afectar las políticas de almacenamiento en caché.

Respuesta

5

Hmm, ¿qué información detallada necesita? Si solo quiere el uso de la memoria, puede consultar el GC. Lo sabe. ;)

long bytes = GC.GetTotalMemory(false); // use 'false' to not wait for next collect 

La variable 'bytes' contendrá la cantidad de bytes actualmente asignados en la memoria administrada. No estoy seguro de si la memoria administrada implica todo el proceso o solo el AppDomain. Deberá probar esto ejecutando varios AppDomains en un proceso y ver si la asignación de la memoria administrada se mide a través de AppDomains. Si no lo hacen, puede usar esto para medir el uso total de la memoria en una aplicación ASP.NET.

Si desea información más específica, hay una API de diagnóstico para el CLR con la que puede interactuar. También hay muchos perfiladores de memoria, pero no sé si funcionarán dentro de una aplicación ASP.NET.

1

Como alternativa, si desea obtener información más detallada, puede leer los contadores de rendimiento utilizando la clase System.Diagnostics.PerformanceCounter. Éstos son algunos de los contadores que se puede conectar a:

Solicitud Bytes de salida total

Solicitar Bytes Totales

Solicitud Tiempo de espera

solicitudes Ejecutora

Solicitudes/Sec

Errores Total

Cuestiones relacionadas