Compartir a través de


Uso de contadores de rendimiento para diagnosticar problemas de rendimiento de las aplicaciones en los hosts de sesión de Escritorio remoto

Un rendimiento deficiente de la aplicación es uno de los problemas más difíciles de diagnosticar, especialmente para aplicaciones lentas o que no responden. Tradicionalmente, el diagnóstico se inicia mediante la recopilación de CPU, memoria, entrada/salida de disco y otras métricas. Luego usa herramientas como Windows Performance Analyzer para tratar de averiguar qué está causando el problema. Por desgracia, en la mayoría de los casos, estos datos no ayudan a identificar la causa raíz, ya que los contadores de consumo de recursos tienen variaciones frecuentes y grandes, Esta situación dificulta la lectura de los datos y su correlación con el problema notificado.

Nota

El contador de retraso de entrada de usuario solo es compatible con:

  • Windows Server 2019 o posterior
  • Windows 10, versión 1809 o posterior

El contador User Input Delay puede ayudarle a identificar rápidamente la causa raíz de los problemas que tienen los usuarios finales en el rendimiento del escritorio remoto. Este contador mide el tiempo que cualquier entrada del usuario, como el uso del mouse o el teclado, permanece en la cola antes de que un proceso lo recoja. El contador funciona tanto en sesiones locales como remotas.

La siguiente imagen muestra una representación somera del flujo de entrada del usuario del cliente a la aplicación.

Diagrama de flujos de entrada de usuario desde el cliente de Escritorio remoto del usuario a la aplicación.

El contador de retraso de entrada del usuario mide la diferencia máxima (en un intervalo dado) entre la entrada que está en la cola y el momento en que la recoge la aplicación en un bucle de mensajes tradicional. En el siguiente diagrama de flujo se muestra un bucle de mensajes tradicional:

Flujo del contador de rendimiento de Retraso de entrada del usuario.

Un detalle importante de este contador es que indica el retraso máximo de la entrada del usuario en un intervalo configurable. Este retraso es el tiempo máximo que tarda una entrada en llegar a la aplicación, lo que puede afectar a la velocidad de acciones importantes y visibles, como escribir.

Por ejemplo, en la siguiente tabla, la demora de la entrada del usuario se notificaría como 1000 ms dentro de este intervalo. El contador notifica el retraso de entrada de usuario más lento en el intervalo. El contador registra este retraso porque la percepción del usuario de "lento" viene determinada por el máximo tiempo de entrada que experimentan y no por la velocidad media de todas las entradas totales.

Número 0 1 2
Retraso 16 ms 20 ms 1000 ms

Habilitación y uso de los nuevos contadores de rendimiento

Para utilizar estos nuevos contadores de rendimiento, primero se debe habilitar una clave del Registro, para lo que hay que ejecutar este comando:

reg add "HKLM\System\CurrentControlSet\Control\Terminal Server" /v "EnableLagCounter" /t REG_DWORD /d 0x1 /f

Nota

Si usa la versión 1809 de Windows 10, o cualquier versión posterior, o Windows Server 2019, o cualquier versión posterior, no será preciso habilitar la clave del Registro.

A continuación, reinicie el servidor. Luego, abra al Monitor de rendimiento y selecciona el icono más (+), como se muestra en la siguiente captura de pantalla:

Captura de pantalla que muestra cómo agregar el contador de rendimiento Retraso de entrada del usuario.

Luego, debería ver el cuadro de diálogo Agregar contadores, donde puede seleccionar Retraso de entrada del usuario por proceso o Retraso de entrada del usuario por sesión.

Captura de pantalla que muestra cómo agregar el retraso de la entrada del usuario por sesión.

Captura de pantalla que muestra cómo agregar el retraso de la entrada del usuario por proceso.

Si selecciona Retraso de entrada del usuario por proceso, verá Instancias del objeto seleccionado, es decir, los procesos en formato SessionID:ProcessID <Process Image>.

Por ejemplo, si la aplicación Calculadora se ejecuta en Id. de sesión 1, verá 1:4232 <Calculator.exe>.

Nota

No están incluidos todos los procesos. No verás ningún proceso que se ejecute como SISTEMA.

El contador empieza a notificar el retraso en la entrada del usuario en cuanto se agrega. La escala máxima se establece en 100 (ms) de forma predeterminada.

Captura de pantalla de un ejemplo de actividad de Retraso de entrada del usuario por proceso en el Monitor de rendimiento.

Luego, vea el Retraso de entrada del usuario por sesión. Hay instancias de cada identificador de sesión y sus contadores muestran el retraso de entrada de usuario de todos los procesos dentro de la sesión especificada. Además, hay dos instancias denominadas "Max" (el retraso máximo de entrada de usuario en todas las sesiones) y "Average" (el promedio en todas las sesiones).

Esta tabla muestra un ejemplo visual de estas instancias. La misma información se puede obtener en el Monitor de rendimiento si se cambia al tipo de gráfico de informe.

Tipo de contador Nombre de instancia Retraso notificado (ms)
Retraso de entrada de usuario por proceso 1:4232 <Calculator.exe> 200
Retraso de entrada de usuario por proceso 2:1000 <Calculator.exe> 16
Retraso de entrada de usuario por proceso 1:2000 <Calculator.exe> 32
Retraso de entrada de usuario por sesión 1 200
Retraso de entrada de usuario por sesión 2 16
Retraso de entrada de usuario por sesión Media 108
Retraso de entrada de usuario por sesión Máx. 200

Contadores que se usan en un sistema sobrecargado

Examinemos ahora lo que verá en el informe si empeora el rendimiento de una aplicación. El siguiente gráfico muestra las lecturas de usuarios que trabajan de forma remota en Microsoft Word. En este caso, el rendimiento empeora con el paso del tiempo, ya que más usuarios inician sesión remotamente.

Captura de pantalla de un gráfico de rendimiento de ejemplo del servidor de RDSH en el que se ejecuta Microsoft Word.

Así es como se deben leer las líneas del gráfico:

  • La línea rosa muestra el número de sesiones que se han iniciado en el servidor.
  • La línea roja es el uso de la CPU.
  • La línea verde es el retraso máximo en la entrada del usuario en todas las sesiones.
  • La línea azul, que se muestra como negra en este gráfico, representa el promedio de retraso de entrada de usuario en todas las sesiones.

Hay una correlación entre los picos de CPU y el retraso de entrada del usuario. A medida que la CPU se usa más, aumenta el retraso de entrada del usuario. Además, como se agregan más usuarios al sistema, el uso de la CPU se acerca al 100 %, lo que dando lugar a picos de retraso de la entrada del usuario más frecuentes. Aunque este contador es útil en los casos en los que el servidor se queda sin recursos, también puede realizar un seguimiento del retraso de entrada del usuario relacionado con una aplicación específica.

Opciones de configuración

Algo importante que no hay que olvidar cuando usa este contador de rendimiento es que informa del retraso de la entrada del usuario en un intervalo de 1000 ms de manera predeterminada. Si establece otro valor para la propiedad del intervalo de ejemplo del contador de rendimiento, como se muestra en la siguiente captura de pantalla, el valor notificado será incorrecto.

Captura de pantalla del cuadro de diálogo Propiedades del monitor de rendimiento.

Para solucionar este problema, puede establecer la siguiente clave del Registro de forma que coincida con el intervalo (en milisegundos) que quiere usar. Por ejemplo, si cambia Muestreo cada 1 segundo a Muestreo cada 5 segundos, deberá establecer esta clave en 5000 ms.

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]

"LagCounterInterval"=dword:00005000

Nota

Si usa la versión 1809 de Windows 10, o cualquier versión posterior, o Windows Server 2019, o cualquier versión posterior, no es preciso establecer el valor de LagCounterInterval para corregir el contador de rendimiento.

También hemos agregado un par de claves que quizás te resulten útiles en la misma clave del Registro:

LagCounterImageNameFirst—establece esta clave en DWORD 1 (el valor predeterminado es 0 o la clave no existe). Esta clave cambia los nombres de contador a "Nombre de imagen <SessionID:ProcessId>", por ejemplo, "explorador <1:7964>". Este cambio resulta útil para ordenar por nombre de imagen.

LagCounterShowUnknown—establece esta clave en DWORD 1 (el valor predeterminado es 0 o la clave no existe). Esta clave muestra todos los procesos que se ejecutan como servicios o como SISTEMA. Algunos de ellos muestran que su sesión se ha establecido como "?".

En la imagen siguiente se muestra el aspecto de ambas claves en:

Captura de pantalla del monitor de rendimiento con las dos claves activadas.

Use los nuevos contadores con herramientas ajenas a Microsoft

Las herramientas de supervisión pueden consumir este contador mediante contadores de rendimiento.

Comparte tus comentarios

Puedes enviar tus comentarios acerca de esta característica a través del Centro de opiniones. Seleccione Aplicaciones > Todas las demás aplicaciones e incluya "contadores de rendimiento de RDS (Monitor de rendimiento)" en el título de la publicación.