Use contadores de desempenho para diagnosticar os problemas de desempenho do aplicativo nos Hosts da Sessão da Área de Trabalho Remota
O baixo desempenho do aplicativo é um dos problemas mais difíceis de diagnosticar, especialmente para aplicativos lentos ou com problemas de capacidade de resposta. Tradicionalmente, você inicia o diagnóstico coletando métricas de CPU, memória, entrada/saída de disco e outras. Em seguida, você usa ferramentas como o Windows Performance Analyzer para tentar descobrir o que está causando o problema. Na maioria das situações, esses dados não o ajudarão a identificar a causa raiz, porque contadores de consumo de recursos têm variações grandes e frequentes. Essa situação torna difícil ler os dados e correlacioná-los com o problema relatado.
Observação
O contador de Atraso de Entrada do Usuário só é compatível com:
- Windows Server 2019 ou posterior
- Windows 10, versão 1809 ou posterior
O contador de Atraso na Entrada do Usuário pode ajudar você a identificar rapidamente a causa raiz de experiências de desempenho ruim da Área de Trabalho Remota do usuário final. Esse contador mede por quanto tempo qualquer entrada do usuário, como o uso do mouse ou do teclado, permanece na fila antes que um processo a pegue. O contador funciona em sessões locais e remotas.
A imagem a seguir mostra uma representação aproximada do fluxo de entrada do usuário do cliente para o aplicativo.
O contador de Atraso na Entrada do Usuário mede o delta máximo dentro de um intervalo de tempo entre a entrada que está sendo enfileirada e quando ela é coletada pelo aplicativo em um loop de mensagem tradicional. Um loop de mensagem tradicional é mostrado no seguinte fluxograma:
Um detalhe importante desse contador é que ele relata o atraso máximo de entrada de usuário dentro de um intervalo configurável. Esse atraso é o tempo mais longo necessário para que uma entrada alcance o aplicativo, o que pode afetar a velocidade de ações visíveis e importantes, como a digitação.
Por exemplo, na tabela a seguir, o atraso de entrada do usuário seria informado como 1.000 ms dentro deste intervalo. O contador reporta o atraso na entrada do usuário mais lento do intervalo. O contador reporta esse atraso pois a percepção de "lentidão" do usuário é determinada pelo tempo de entrada mais lento (tempo máximo) registrado, e não pela velocidade média de todas as entradas.
Número | 0 | 1 | 2 |
---|---|---|---|
Atraso | 16 ms | 20 ms | 1\.000 ms |
Habilitar e usar os novos contadores de desempenho
Para usar esses novos contadores de desempenho, você precisa primeiro habilitar uma chave do Registro executando este comando:
reg add "HKLM\System\CurrentControlSet\Control\Terminal Server" /v "EnableLagCounter" /t REG_DWORD /d 0x1 /f
Observação
Se estiver usando o Windows 10 versão 1809 ou posterior, ou o Windows Server 2019 ou posterior, não será necessário habilitar a chave do Registro.
Em seguida, reinicie o servidor. Em seguida, abra o Monitor de Desempenho e selecione o ícone de adição (+), conforme mostrado na seguinte captura de tela:
Depois de fazer isso, você deverá ver o diálogo Adicionar Contadores, onde poderá selecionar Atraso na Entrada do Usuário por Processo ou Atraso na Entrada do Usuário por Sessão.
Ao selecionar Atraso na Entrada do Usuário por Processo, você verá as instâncias do objeto selecionado, em outras palavras, os processos no formato SessionID:ProcessID <Process Image>
.
Por exemplo, se o aplicativo da Calculadora estiver em execução na ID de Sessão 1, você verá 1:4232 <Calculator.exe>
.
Observação
Nem todos os processos são incluídos. Você não verá todos os processos que estão sendo executados como SYSTEM.
O contador começará a reportar o atraso de entrada do usuário assim que você adicioná-lo. Por padrão, a escala máxima é definida como 100 (ms).
Em seguida, confira o Atraso na Entrada do Usuário por Sessão. Há instâncias para cada ID de sessão e os respectivos contadores mostram o atraso de entrada do usuário de qualquer processo dentro da sessão especificada. Além disso, há duas instâncias chamadas "Max" (o atraso máximo de entrada do usuário em todas as sessões) e "Average" (a média em todas as sessões).
Esta tabela mostra um exemplo visual dessas instâncias. Você pode obter as mesmas informações no Perfmon, alternando para o tipo de grafo de Relatório.
Tipo de contador | Nome da instância | Atraso relatado (ms) |
---|---|---|
Atraso de Entrada do Usuário por processo | 1:4232 <Calculator.exe> | 200 |
Atraso de Entrada do Usuário por processo | 2:1000 <Calculator.exe> | 16 |
Atraso de Entrada do Usuário por processo | 1:2000 <Calculator.exe> | 32 |
Atraso de entrada do usuário por sessão | 1 | 200 |
Atraso de entrada do usuário por sessão | 2 | 16 |
Atraso de entrada do usuário por sessão | Média | 108 |
Atraso de entrada do usuário por sessão | Máx. | 200 |
Contadores usados em um sistema sobrecarregado
Agora vamos examinar o que você vê no relatório se o desempenho de um aplicativo está degradado. O gráfico a seguir mostra leituras para usuários que trabalham remotamente no Microsoft Word. Nesse caso, o desempenho se degrada ao longo do tempo, à medida que mais usuários entram remotamente.
Eis aqui como ler as linhas do grafo:
- A linha rosa mostra o número de sessões conectadas no servidor.
- A linha vermelha é o uso da CPU.
- A linha verde é o atraso máximo de entrada de usuário entre todas as sessões.
- A linha azul, exibida como preta nesse grafo, representa o atraso médio na entrada do usuário entre todas as sessões.
Há uma correlação entre os picos de CPU e os atraso na entrada do usuário. À medida que a CPU acumula mais uso, o atraso na entrada do usuário aumenta. Além disso, conforme mais usuários são adicionados ao sistema, o uso da CPU fica próximo a 100%, levando a picos de atraso de entrada do usuário mais frequentes. Embora esse contador seja útil para casos em que o servidor fica sem recursos, ele também pode rastrear o atraso na entrada do usuário em relação a um aplicativo específico.
Opções de configuração
Uma coisa importante a se lembrar ao usar esse contador de desempenho é que ele reporta o atraso na entrada do usuário em um intervalo de 1.000 ms por padrão. Se você definir a propriedade de intervalo de amostra do contador de desempenho, como mostrado na captura de tela a seguir, com algo diferente, o valor reportado estará incorreto.
Para corrigir esse problema, você pode definir a chave do Registro a seguir para corresponder ao intervalo (em milissegundos) que deseja usar. Por exemplo, se você alterar a amostra de A cada 1 segundo para A cada 5 segundos, será preciso definir essa chave como 5000 ms.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]
"LagCounterInterval"=dword:00005000
Observação
Se estiver usando o Windows 10 versão 1809 ou posterior, ou o Windows Server 2019 ou posterior, não será necessário definir LagCounterInterval para corrigir o contador de desempenho.
Também adicionamos algumas chaves que podem ser úteis sob a mesma chave do Registro:
LagCounterImageNameFirst
– defina essa chave como DWORD 1
(o valor padrão é 0 ou a chave não existe). Essa chave altera os nomes dos contadores para "Nome da Imagem <SessionID:ProcessId>", por exemplo, "explorer <1:7964>". Essa alteração é útil se você deseja classificar pelo nome da imagem.
LagCounterShowUnknown
– defina essa chave como DWORD 1
(o valor padrão é 0 ou a chave não existe). Essa chave mostra qualquer processo que esteja sendo executados como serviço ou SYSTEM. Alguns processos aparecem com a sessão definida como "?".
A seguinte imagem mostra a aparência com ambas as chaves ativadas:
Usando os novos contadores com ferramentas não pertencentes à Microsoft
Ferramentas de monitoramento podem consumir esse contador ao Usar Contadores de Desempenho.
Compartilhe seus comentários
Você pode enviar comentários para esse recurso por meio do Hub de Comentários. Selecione Aplicativos > Todos os outros aplicativos e inclua "Contadores de desempenho do RDS – monitor de desempenho" no título da sua postagem.