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

Se aplica a: Windows Server 2022, Windows Server 2019, Windows 10

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.

Diagram of user input flows from the users Remote Desktop client to the application.

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:

Diagram of user input Delay performance counter flow.

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:

Screenshot showing how to add the User input Delay performance counter.

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.

Screenshot showing how to add the User input Delay per session.

Screenshot showing how to add the User input Delay per process.

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.

Screenshot of an example of activity for the User Input Delay per process in the Performance Monitor.

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.

Screenshot of an example performance graph for the RDSH server running 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.

Screenshot of the Performance Monitor Properties dialog.

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:

Screenshot of the performance monitor with both keys on.

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.