Recopilación de datos de rendimiento

¿Por qué y cómo se recopilan los datos de rendimiento?

En los inicios de la informática, el rendimiento constituía un factor clave. Hay que decir que los recursos del sistema eran ridículamente pequeños en comparación con lo que encontramos hoy en día, aunque solo sea en un smartphone. En el trabajo de desarrollo, cada byte o frecuencia de cálculo se utilizaba juiciosamente. El sistema de información se beneficiaba de una planificación de capacidad precisa, utilizada para determinar en qué momento se saturaría. Este rigor se ha ido relajando con el tiempo, pues la profusión de recursos ya no presiona por el rendimiento, sino por la rapidez de ejecución. En consecuencia, se hace menos hincapié en la cantidad de recursos movilizados en un momento dado. Esto puede provocar una sobreutilización de los recursos del sistema informático. Esto afecta considerablemente al usuario, generando lentitud en el uso de las herramientas informáticas. Es generalmente en estos casos cuando se opta por una auditoría y la recogida de datos sobre el rendimiento de un sistema. Sin embargo, esto puede prevenirse mediante una recopilación de datos comparativa y preventiva.

Cuando se quiere instalar un nuevo hardware o actualizar una aplicación, se recopilan datos antes y después del cambio, y luego se comprueba si la diferencia de rendimiento...

Windows Performance Logs and Alerts (PLA)

Windows Performance Logs and Alerts es un componente de protocolo y software que recopila datos de diagnóstico de sistemas locales y remotos. La conexión a un sistema se basa en el par DCOM/RPC. Así que una vez más nos encontramos con el problema de asegurar los intercambios, pero también con la dificultad de implementarlo en una red corporativa compleja. Por eso recomendamos utilizar sesiones PowerShell remotas, con el servicio WinRM y un flujo HTTP/HTTPS más fiable y seguro.

En términos generales, PLA puede utilizarse para lo siguiente:

  • Recopilar datos de rendimiento: se trata de mediciones realizadas en un momento dado sobre un componente de hardware (por ejemplo: la CPU) o de software (por ejemplo: un proceso). Estas mediciones son elementos clave para resolver problemas de sobrecarga o prever cambios en los recursos del sistema estableciendo una capacity planning. Gracias al protocolo PLA, es posible exportar las mediciones utilizando diferentes plataformas y formatos. Se puede elegir entre una base de datos, un archivo en formato BLG o un archivo en formato CSV.

  • Iniciar, detener o programar una recopilación de datos: los contadores de datos pueden agruparse en una única recopilación de datos. A continuación, es posible iniciar, detener o programar esta recogida para medir en un momento concreto del día, la semana o el mes.

  • Generar alertas:...

Conjunto de comandos PowerShell

Para gestionar los contadores de rendimiento y sus datos, existen algunos comandos básicos pero muy potentes. Todos ellos están contenidos en el módulo Microsoft.PowerShell.Diagnostics:

PS > Get-Command -Module Microsoft.PowerShell.Diagnostics  
  
CommandType     Name            Version    Source  
-----------     ----            -------    ------  
Cmdlet          Export-Counter  3.0.0.0    Microsoft.PowerShel...  
Cmdlet          Get-Counter     3.0.0.0    Microsoft.PowerShel...  
Cmdlet          Get-WinEvent    3.0.0.0    Microsoft.PowerShel...  
Cmdlet          Import-Counter  3.0.0.0    Microsoft.PowerShel...  
Cmdlet          New-WinEvent    3.0.0.0    Microsoft.PowerShel... 

Los comandos New-WinEvent y Get-WinEvent no se tratan en este capítulo. Se utilizan para crear o recuperar trazas de eventos de Windows (ETW).

Los comandos *-Counter no están disponibles en la versión 6.0.2 de PowerShell Core.

1. Listado de categorías de contadores de rendimiento

Para preparar mejor la recogida de datos de rendimiento mediante contadores, es preferible identificar con precisión los que mejor responden a las necesidades. Demasiada o muy poca información podría ser contraproducente.

El número de contadores de rendimiento es bastante grande. Por defecto, hay más de 2.000. Afortunadamente, para facilitar la búsqueda, los contadores están agrupados por categorías (ListSet). Por ejemplo, todos los contadores relacionados con el procesador pueden encontrarse en Procesador e Información del procesador.

Para listar todas las categorías de contadores, utilice el comando Get-Counter con el parámetro...

Recopilación de datos en todas la empresa

El método de recopilación mostrado anteriormente resulta insuficiente si la necesidad se extiende a varios miles de servidores. La API PLA se ha diseñado precisamente para responder a esta necesidad y ofrece un método alternativo. Se trata de configurar recopiladores de datos de rendimiento incrustados en un conjunto de recopiladores de datos. Para trasladarlo a lo que hemos hecho hasta ahora, el comando Get-Counter desempeñaba el papel de recopilador de datos. El comando Export-Counter cubría parte de la funcionalidad de un conjunto de recopiladores de datos.

Para ser más precisos, un recopilador de datos define:

  • el intervalo de tiempo entre dos recopilaciones de datos (equivalente al parámetro -SampleInterval del comando Get-Counter).

  • el número de recopilaciones de datos que se van a realizar (equivalente al parámetro -MaxSamples del comando Get-Counter) o la duración total de la recopilación.

  • la lista de contadores de rendimiento (equivalente al parámetro -Counter del comando Get-Counter).

  • el formato del archivo de datos resultante (equivalente al parámetro -FileFormat del comando Export-Counter).

Y un conjunto de recopiladores de datos define:

  • la ubicación de los archivos de datos (equivalente al parámetro -Path del comando Export-Counter),

Un conjunto de recopiladores de datos puede contener varios recopiladores de datos. Esto implica que puede generarse un archivo distinto por cada recopilador dentro de un conjunto. Si los archivos planos ya no son suficientes, los datos pueden integrarse directamente en una base de datos. Esta opción no está disponible con los comandos Get-Counter y Export-Counter.

Existe una fuerte restricción en PowerShell para automatizar y administrar conjuntos de recopiladores de datos. No hay ningún comando de PowerShell predeterminado para crear o modificar conjuntos de recopiladores de datos.

Solo la versión de servidor de Windows dispone de tres comandos para administrarlos, y cubren muy pocas necesidades:

  • Get-SMPerformanceCollector: se utiliza para conocer el estado de un conjunto de recopiladores de datos.

  • Start-SMPerformanceCollector: permite iniciar manualmente la recogida de un conjunto de recopiladores de datos.

  • Stop-SMPerformanceCollector: se puede utilizar para detener manualmente la recogida de un conjunto de recopiladores...