Поделиться через


Диагностика проблем с производительностью приложений на узлах сеансов удаленных рабочих столов с помощью счетчиков производительности

Область применения: Windows Server 2022, Windows Server 2019, Windows 10

Низкая производительность приложений является одной из самых сложных проблем для диагностики, особенно для медленных или неответственных приложений. Традиционно вы запускаете диагностику, собирая ЦП, память, входные и выходные данные диска и другие метрики. Затем вы используете такие инструменты, как Windows Анализатор производительности, чтобы попытаться выяснить, что вызывает проблему. К сожалению, в большинстве случаев эти данные не помогают определить основную причину, так как данные счетчиков потребления ресурсов часто существенно колеблются. Эта ситуация затрудняет чтение данных и их корреляцию с сообщаемой проблемой.

Примечание.

Счетчик задержки ввода данных пользователем совместим только с такими ОС:

  • Windows Server 2019 или более поздней версии;
  • Windows 10 версии 1809 и выше

Счетчик задержки ввода пользователей помогает быстро определить первопричину плохого взаимодействия с производительностью удаленного рабочего стола конечного пользователя. Этот счетчик измеряет, как долго любые входные данные пользователя, такие как мышь или использование клавиатуры, остаются в очереди, прежде чем процесс выбирает его. Счетчик работает как в локальных, так и в удаленных сеансах.

На следующем рисунке показано примерное представление потока ввода данных пользователем, поступающего от клиента к приложению.

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

Счетчик задержки ввода пользователя измеряет максимальное значение в течение интервала времени между очередью входных данных и когда приложение в традиционном цикле сообщений выбирает его. Традиционный цикл сообщений показан на следующей блок-диаграмме:

Diagram of user input Delay performance counter flow.

Следует отметить, что этот счетчик сообщает максимальную задержку ввода данных пользователем в пределах настраиваемого интервала. Эта задержка является самым длинным временем, которое требуется для доступа к приложению, что может повлиять на скорость важных и видимых действий, таких как ввод.

Например, в приведенной ниже таблице задержка ввода данных пользователем в пределах этого интервала будет составлять 1000 мс. Счетчик сообщает о максимально медленной задержке ввода пользователей в интервале. Счетчик сообщает об этой задержке, так как восприятие пользователем "медленно" определяется самым медленным временем ввода (максимальным) и не средней скоростью всех общих входных данных.

Число 0 1 2
Задержка 16 мс 20 мс 1000 мс

Включение новых счетчиков производительности и их использование

Чтобы использовать эти новые счетчики производительности, необходимо сначала включить раздел реестра, выполнив следующую команду:

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

Примечание.

Если вы используете Windows 10 версии 1809 или более поздней версии или Windows Server 2019 или более поздней, вам не потребуется включить раздел реестра.

После этого нужно перезапустить сервер. Затем откройте Монитор производительности и выберите значок плюса (+), как показано на следующем снимке экрана:

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

Затем вы увидите диалоговое окно "Добавить счетчики", где можно выбрать задержку ввода пользователей для каждого процесса или задержки ввода пользователей на сеанс.

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

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

При выборе задержки ввода пользователей на процесс отображаются экземпляры выбранного объекта, другими словами, процессы в SessionID:ProcessID <Process Image> формате.

Например, если приложение калькулятора запущено в идентификаторе сеанса 1, вы увидите 1:4232 <Calculator.exe>.

Примечание.

Учитываются не все процессы. Вы не увидите процессы, запущенные как системные.

Счетчик начинает отправку отчетов о задержке ввода данных пользователем сразу после того, как вы его добавите. По умолчанию максимальный масштаб равен 100 (мс).

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

Далее см. задержку ввода пользователей на сеанс. Для каждого идентификатора сеанса есть экземпляры, и их счетчики показывают задержку ввода данных пользователем для любого процесса в указанном сеансе. Кроме того, существует два экземпляра с именами "Max" (максимальная задержка ввода пользователя во всех сеансах) и "Average" (среднее значение для всех сеансов).

В этой таблице представлен визуальный пример этих экземпляров. Вы можете получить те же сведения в Perfmon, переключившись на тип графа отчета.

Тип счетчика Имя экземпляра Сообщенная задержка (мс)
Задержка ввода данных пользователем на процесс 1:4232 <Calculator.exe> 200
Задержка ввода данных пользователем на процесс 2:1000 <Calculator.exe> 16
Задержка ввода данных пользователем на процесс 1:2000 <Calculator.exe> 32
Задержка ввода данных пользователем на сеанс 1 200
Задержка ввода данных пользователем на сеанс 2 16
Задержка ввода данных пользователем на сеанс По средней 108
Задержка ввода данных пользователем на сеанс Макс. 200

Счетчики, используемые в перегруженной системе

Теперь давайте рассмотрим, что вы видите в отчете, если производительность приложения снижается. На следующей диаграмме приведены показатели пользователей, удаленно работающих в Microsoft Word. В этом случае производительность снижается по мере удаленного входа пользователей.

Screenshot of an example performance graph for the RDSH server running Microsoft Word.

Вот что представляют линии на диаграмме:

  • Розовая линия показывает количество сеансов, в которые выполнен вход на сервере.
  • Красная линия показывает потребление ЦП.
  • Зеленая линия — это максимальная задержка ввода данных пользователем во всех сеансах.
  • Синяя линия, отображаемая как черная на этом графе, представляет среднюю задержку ввода пользователей во всех сеансах.

Существует корреляция между пиками ЦП и задержкой ввода данных пользователем. По мере увеличения использования ЦП увеличивается задержка ввода данных пользователя. Кроме того, по мере добавления в систему большего количества пользователей потребление ЦП приближается к 100 %, что приводит к более частым пикам задержки ввода данных пользователем. Хотя этот счетчик полезен в тех случаях, когда сервер выходит из ресурсов, он также может отслеживать задержку ввода пользователей, связанную с конкретным приложением.

Варианты настройки

Важно помнить, что при использовании этого счетчика производительности он сообщает о задержке ввода пользователей в интервале от 1000 мс по умолчанию. Если задать свойство интервала счетчика производительности, как показано на следующем снимке экрана, значение, указанное значение будет неверным.

Screenshot of the Performance Monitor Properties dialog.

Чтобы устранить эту проблему, можно задать следующий раздел реестра для сопоставления интервала (в миллисекундах), который требуется использовать. Например, если изменить образец каждые 1 секунды на Образец каждые 5 секунд, необходимо задать для этого ключа значение 5000 мс.

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

"LagCounterInterval"=dword:00005000

Примечание.

Если вы используете Windows 10 версии 1809 или более поздней версии или Windows Server 2019 или более поздней, вам не нужно задать LagCounterInterval для исправления счетчика производительности.

Мы также добавили несколько разделов, которые могут оказаться полезными, под тем же разделом реестра.

LagCounterImageNameFirst— задайте для этого ключа DWORD 1 значение (значение по умолчанию 0 или ключ не существует). Этот ключ изменяет имена счетчиков на "Image Name <SessionID:ProcessId>", например "explorer <1:7964>". Это изменение полезно, если вы хотите отсортировать по имени изображения.

LagCounterShowUnknown— задайте для этого ключа DWORD 1 значение (значение по умолчанию 0 или ключ не существует). Этот ключ показывает все процессы, выполняемые как службы или SYSTEM. Некоторые процессы отображаются с заданным сеансом как "?".

На следующем рисунке показано, как выглядит оба ключа:

Screenshot of the performance monitor with both keys on.

Использование новых счетчиков с инструментами, отличными от Майкрософт

Инструменты мониторинга могут использовать этот счетчик, как описано в руководстве Использование счетчиков производительности.

Поделитесь своим мнением

Вы можете отправить отзыв об этом компоненте через Центр отзывов. Выберите Приложения > Все другие приложения и добавьте"Счетчики производительности RDS — системный монитор" в заголовок публикации.