Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Низкая производительность приложений является одной из самых сложных проблем для диагностики, особенно для медленных или неответственных приложений. Традиционно вы запускаете диагностику, собирая ЦП, память, входные и выходные данные диска и другие метрики. Затем вы используете такие инструменты, как Windows Анализатор производительности, чтобы попытаться выяснить, что вызывает проблему. К сожалению, в большинстве случаев эти данные не помогают определить основную причину, так как данные счетчиков потребления ресурсов часто существенно колеблются. Эта ситуация затрудняет чтение данных и их корреляцию с сообщаемой проблемой.
Примечание.
Счетчик задержки ввода данных пользователем совместим только с такими ОС:
- Windows Server 2019 или более поздней версии;
- Windows 10 версии 1809 и выше
Счетчик задержки ввода может помочь быстро определить первопричину плохой производительности удаленного рабочего стола для конечного пользователя. Этот счетчик измеряет, как долго любые входные данные пользователя, такие как мышь или использование клавиатуры, остаются в очереди, прежде чем процесс выбирает его. Счетчик работает как в локальных, так и в удаленных сеансах.
На следующем рисунке показано примерное представление потока ввода данных пользователем, поступающего от клиента к приложению.
Счетчик задержки ввода пользователя измеряет максимальную задержку в течение интервала времени между очередью входных данных и моментом, когда приложение в традиционном цикле сообщений их забирает. Традиционный цикл сообщений показан на следующей блок-диаграмме:
Следует отметить, что этот счетчик сообщает максимальную задержку ввода данных пользователем в пределах настраиваемого интервала. Эта задержка является самым длинным временем, которое требуется для доступа к приложению, что может повлиять на скорость важных и видимых действий, таких как ввод.
Например, в приведенной ниже таблице задержка ввода данных пользователем в пределах этого интервала будет составлять 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 или новее, вам не потребуется включить ключ реестра.
После этого нужно перезапустить сервер. Затем откройте Монитор производительности и выберите значок плюса (+), как показано на следующем снимке экрана:
Затем вы увидите диалоговое окно "Добавить счетчики", где можно выбрать задержку ввода пользователей для каждого процесса или задержки ввода пользователей на сеанс.
При выборе задержки ввода пользователей для процесса отображаются экземпляры выбранного объекта, другими словами, процессы в формате SessionID:ProcessID <Process Image>
.
Например, если приложение калькулятора запущено в идентификаторе сеанса 1, вы увидите 1:4232 <Calculator.exe>
.
Примечание.
Учитываются не все процессы. Вы не увидите процессы, запущенные как системные.
Счетчик начинает учет задержки ввода данных пользователем сразу после того, как вы его добавите. По умолчанию максимальный масштаб равен 100 (мс).
Далее см. задержку ввода пользователя на сеанс. Для каждого идентификатора сеанса есть экземпляры, и их счетчики показывают задержку ввода данных пользователем для любого процесса в указанном сеансе. Кроме того, существует два экземпляра с именами "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. В этом случае производительность снижается по мере удаленного входа пользователей.
Вот как читать линии на графике:
- Розовая линия показывает количество сеансов, в которые выполнен вход на сервере.
- Красная линия показывает потребление ЦП.
- Зеленая линия — это максимальная задержка ввода данных пользователем во всех сеансах.
- Синяя линия, отображаемая как черная на этом графе, представляет среднюю задержку ввода пользователей во всех сеансах.
Существует корреляция между пиками ЦП и задержкой ввода данных пользователем. По мере увеличения использования ЦП увеличивается задержка ввода данных пользователя. Кроме того, по мере добавления в систему большего количества пользователей потребление ЦП приближается к 100 %, что приводит к более частым пикам задержки ввода данных пользователем. Хотя этот счетчик полезен в тех случаях, когда сервер выходит из ресурсов, он также может отслеживать задержку ввода пользователей, связанную с конкретным приложением.
Варианты настройки
Важно помнить, что при использовании этого счетчика производительности он сообщает о задержке ввода пользователей в интервале от 1000 мс по умолчанию. Если задать свойство интервала выборки счетчика производительности, как показано на следующем снимке экрана, на любое другое значение, указанное значение будет неверным.
Чтобы устранить эту проблему, можно задать следующий раздел реестра для сопоставления интервала (в миллисекундах), который требуется использовать. Например, если изменить образец каждые 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. Некоторые процессы отображаются с сеансом, установленным как "?".
На следующем рисунке показано, как выглядит при включённых обоих ключах.
Использование новых счетчиков с инструментами, отличными от Майкрософт
Инструменты мониторинга могут использовать этот счетчик, как описано в руководстве Использование счетчиков производительности.
Поделитесь своим мнением
Вы можете отправить отзыв об этом компоненте через Центр отзывов. Выберите Приложения > Все другие приложения и добавьте"Счетчики производительности RDS — системный монитор" в заголовок публикации.