Introducción a la supervisión de umbrales de rendimiento

Actualización: noviembre 2007

El mecanismo gracias al cual Windows obtiene los datos de rendimiento en varios recursos de sistema es el contador de rendimiento. Windows contiene un conjunto predefinido de contadores de rendimiento con el cual se puede interactuar; algunos de ellos se encuentran en todos los equipos con Windows 2000 y otros son específicos de algunas aplicaciones y sólo se encuentran en determinados equipos. Cada contador está relacionado con un área específica de funcionalidad del sistema. Ejemplos de contadores son aquellos que supervisan el tiempo de ocupación de un procesador, la utilización de la memoria o el número de bytes recibidos a través de una conexión de red. Se puede utilizar una instancia del componente PerformanceCounter para establecer una conexión directa con los contadores de rendimiento existentes e interactuar con sus datos de manera dinámica.

Los contadores de rendimiento supervisan el comportamiento de los objetos de rendimiento de un equipo. Estos incluyen los componentes físicos, como procesadores, discos y memoria, y los objetos del sistema, como procesos y subprocesos. En Visual Studio y Kit de desarrollo de software de Windows (SDK), estos objetos de rendimiento se muestran como categorías; los contadores del sistema que están relacionados con el mismo objeto de rendimiento se agrupan en categorías que indican su ámbito común. Al crear una instancia del componente PerformanceCounter, primero debe indicarse la categoría con la que actuará el componente y después debe elegirse un contador con el que interactuar desde dicha categoría.

Por ejemplo, una categoría de contadores en Windows es la categoría Memoria. Los contadores del sistema de esta categoría controlan datos como los bytes disponibles y los bytes almacenados en caché. Para trabajar con los bytes almacenados en caché de una aplicación, debe crear una instancia del componente PerformanceCounter, conectarlo a la categoría "Memoria" y, a continuación, elegir el contador correspondiente en dicha categoría ("Bytes de caché", en este caso).

En algunas situaciones, las categorías se subdividen en instancias. Las instancias controlan los datos de las múltiples apariciones del objeto con el que está relacionado una categoría. Es importante observar que las instancias son aplicables a la categoría como un todo, más que a contadores individuales. Todos los contadores de una categoría tienen definidas las instancias para esa categoría. Por ejemplo, la categoría Proceso contiene instancias denominadas "Idle" y "System". Todos los contadores de la categoría Proceso especifican los datos de estas dos maneras: mostrando información sobre los procesos inactivos (Idle) o sobre los procesos del sistema (System). La estructura de la categoría y los contadores tiene el siguiente aspecto:

Categorías, instancias y contadores

Como se puede ver, la categoría Proceso contiene dos instancias, por lo que ambos contadores también contienen instancias de Idle y System. Para obtener más información sobre instancias, vea Cómo: Agregar y quitar instancias del contador de rendimiento.

Si bien el sistema tiene disponibles muchas más categorías de contadores, las categorías predeterminadas que se utilizan con más frecuencia son Caché, Memoria, Objetos, DiscoFísico, Procesador, Servidor, Sistema y Subproceso.

Datos del contador de rendimiento

Los contadores de rendimiento registran valores de diferentes partes del sistema. Estos valores no se almacenan como entradas, sino que persisten siempre que permanezca abierto en memoria un identificador para la categoría correspondiente. El proceso de recuperar datos de un contador de rendimiento se denomina muestreo. Al realizar un muestreo, se recupera el valor inmediato de un contador o un valor calculado.

Según la forma en que esté definido el contador, su valor puede ser el aspecto más reciente de la utilización de recursos, también conocido como valor inmediato, o puede ser el promedio de las últimas dos mediciones efectuadas en el tiempo transcurrido entre un muestreo y otro. Por ejemplo, al recuperar un valor del contador Número de subprocesos de la categoría Proceso, se recupera el número de subprocesos ejecutados en un proceso determinado desde la última vez que se midió este contador. Éste es un valor inmediato. Sin embargo, si se recupera el contador Páginas/s. de la categoría Memoria, se recupera la frecuencia por segundo basada en el promedio de páginas de memoria recuperadas durante los dos últimos muestreos.

La utilización de los recursos puede variar enormemente según el trabajo realizado en los diferentes momentos del día. Por ello, los contadores de rendimiento que muestran las frecuencias de utilización a lo largo de un intervalo representan una medición más completa que los promedios de los valores de contadores instantáneos. Los promedios pueden incluir datos sobre el inicio de un servicio o sobre otros eventos que pueden hacer que las cifras sobrepasen el intervalo promedio durante un breve período de tiempo, alterando así los resultados habituales.

El componente PerformanceCounter responde a los requisitos más comunes de supervisión del rendimiento de Windows, es decir, establecer conexión con un contador existente del servidor y leer y escribir valores en él. El Monitor de rendimiento de Windows proporciona funciones adicionales, como el modelado de datos complejo. Por ejemplo, se puede utilizar el Monitor de rendimiento para seguir los datos de un contador, confeccionar informes sobre los datos, establecer alertas y guardar los datos en un registro.

Trabajar con contadores de rendimiento en las aplicaciones .NET

A través del componente PerformanceCounter, puede conectarse a los contadores existentes instalados en los servidores a los que tiene acceso o puede crear contadores personalizados. Puede leer datos de cualquier contador y escribir datos en sus propios contadores.

Para ello, al conectarse a un contador de rendimiento existente, deberá especificar el equipo donde reside el contador, su categoría y su nombre. Además, tiene la opción de especificar la instancia del contador que desea utilizar, si éste contiene más de una instancia. A continuación, puede leer y escribir todos los datos del contador. También se pueden enumerar las categorías, contadores e instancias existentes en el equipo mediante código o utilizar el Explorador de servidores para ver una lista de los contadores existentes del equipo.

Al crear un nuevo contador, debe especificar una categoría completamente nueva para el equipo local. No puede agregar un nuevo contador a una categoría existente ni crear nuevos contadores en un equipo remoto. Sin embargo, puede escribir y leer datos de cualquier contador personalizado que haya creado.

Puede expandir el nodo Contadores de rendimiento en el Explorador de servidores para ver una lista de los contadores existentes en dicho servidor (por categoría) y las instancias por las que están clasificados. También puede arrastrar un contador de rendimiento específico o una instancia determinada desde el Explorador de servidores al Diseñador de componentes de Microsoft Visual Studio, con el fin de crear una instancia del componente PerformanceCounter cuyas propiedades apunten automáticamente al contador seleccionado.

Si utiliza un componente PerformanceCounter en una aplicación ASP.NET, la configuración predeterminada de la cuenta de usuario ASPNET restringe el acceso a los contadores de rendimiento. De manera predeterminada, la cuenta de usuario ASPNET puede escribir pero no leer de los contadores de rendimiento, y tampoco puede crear categorías nuevas. Puede utilizar la suplantación de usuarios con la cuenta ASPNET para permitir la creación de categorías nuevas. La identidad de la suplantación de usuario debe tener suficientes privilegios para crear categorías. Si la aplicación necesita contadores de rendimiento que se puedan especificar antes de la implementación, se pueden crear con el proyecto de implementación. Para obtener más información, vea Seguridad de aplicaciones Web ASP.NET.

Nota:

Puede crear una nueva categoría de contadores en el Explorador de servidores; para ello, haga clic con el botón secundario del mouse en el nodo Contadores de rendimiento y elija el comando de menú correspondiente. También puede editar una categoría existente haciendo clic con el botón secundario en su nodo correspondiente.

Para obtener más información, vea Explorador de servidores/Explorador de bases de datos.

Restricciones

En esta versión, es posible que deba reiniciar el Monitor de sistema (Perfmon.exe) que se instala con Microsoft Windows 2000 al crear contadores de rendimiento personalizados, para poder verlos en la aplicación correspondiente.

La clase PerformanceCounter no es totalmente compatible con Microsoft Windows NT 4.0. Puede leer de los contadores del sistema, pero no puede crear, escribir ni eliminar contadores personalizados.

Vea también

Conceptos

Análisis de datos del contador de rendimiento

Arquitectura de programación del contador de rendimiento

Duración del contador de rendimiento

Tipos de contadores de rendimiento