Поиск по сайту:

Проблемы производительности RDS и RemoteApp на Windows Server 2019/2016


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

Исправление производительности RDS на Windows Server 2016/2019 с помощью UPD

Серверы RDS под управлением Windows Server 2019/2016 с большим количеством пользователей могут испытывать снижение производительности при использовании дисков профиля пользователя.

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

Со временем в брандмауэре появляется множество дублирующихся правил, что приводит к резкому снижению производительности RDS-сервера (медленный вход в систему, черный экран при входе через RDP, зависание хостов RDS, не открываются меню и кнопка Пуск). кнопка не появляется).

Проверьте количество правил в брандмауэре Защитника Windows с помощью команды PowerShell:

(Get-NetFirewallRule).count

В моем случае на одном из хостов RDS было 18 000 правил брандмауэра! Эти правила создаются для приложений Windows UWP Store каждый раз, когда пользователь входит в систему.

Чтобы устранить эту проблему, необходимо сначала установить последние обновления безопасности для вашей версии Windows Server (не ниже KB4467684 для Windows Server 2016 и KB4490481 для Windows Server 2019). Затем создайте следующий параметр реестра на своем RDSH:

  • Ключ регистрации: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy

  • Тип: REG_DWORD

  • Свойство: DeleteUserAppContainersOnLogoff

  • Ценить:

    1

Вы можете создать свойство реестра с помощью команды PowerShell:

New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy" -Type DWord -Name DeleteUserAppContainersOnLogoff -Value 1

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

Не забудьте вручную очистить правила входящего и исходящего трафика в брандмауэре Защитника Windows. Если правил брандмауэра мало, вы можете использовать сценарий PowerShell из ветки TechNet (https://social.microsoft.com/Forums/Azure/en-US/992e86c8-2bee-4951-9461-e3d7710288e9/windows-servr- 2016-rdsh-брандмауэр-правила-создаются при каждом входе в систему?forum=winserverTS).

Вместо использования дисков профилей пользователей на серверах RDS вы можете использовать современные контейнеры FSLogix для хранения профилей пользователей.

Низкая производительность RDS/RemoteApp из-за высокой частоты опроса мыши

Многие пользователи жалуются на плохую производительность сеанса RDP, высокую задержку и задержки мыши после миграции фермы RDS на Windows Server 2019. Мышь очень медленно реагирует на движение, курсор трясется и зависает.

Эта проблема может быть связана с настройками высокого разрешения и частоты опроса некоторых оптических мышей (обычно игровых мышей). Например, популярная мышь Logitech G203 имеет частоту опроса по умолчанию 1000 раз в секунду (

1000 Hz

). Высокая частота опроса мыши, по-видимому, вызывает высокую нагрузку на соединение RDP, и вы можете столкнуться с задержками при работе с RemoteApps. Если вы уменьшите это значение до 125 раз в секунду (125 Гц), проблема с мышью в сеансе RDP исчезнет.

Вы можете уменьшить частоту опроса, используя инструменты мыши поставщика.

Если вы не можете уменьшить частоту опроса, попробуйте отключить тень курсора мыши (снимите флажок с параметра Включить тень указателя) и выберите схему Нет для указателя мыши. настройки в панели управления Windows (

main.cpl

).

Медленные зависания RemoteAPP, мыши и меню после обновления до Windows 10

Пользователи могут столкнуться с проблемами производительности при использовании RemoteApps, опубликованных на серверах RDS Windows Server 2019/2016/2012R2 после обновления сборки Windows 10. RDS RemoteApps может начать работать значительно медленнее, любое действие, вызванное щелчком мыши, выполняется (отрисовывается) в 2-3 раза дольше, а контекстные меню в RemoteApps отображаются медленно (пункты меню мигают, приходится нажимать на них несколько раз). , иногда они вообще не появляются). Аналогичные проблемы возникли при обновлении сборок Windows 10 на клиентах до версий 1803 и 20H2.

При этом проблем не возникает в полноэкранном режиме RDP-подключения, установленном с помощью встроенного

Mstsc.exe

или клиент RDCMan.

Чтобы обойти эту проблему, вы можете попытаться изменить значение параметра Использовать Расширенную графику RemoteFX для RemoteApp на Отключено с помощью локального редактора объектов групповой политики. (gpedit.msc) (раздел GPO: Конфигурация компьютера -> Политики -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Среда удаленных сеансов).

Если графические программы (обычно приложения САПР) публикуются как RemoteAPP, то они не будут работать без поддержки Remote FX.

Однако существует обходной путь замены версии клиента RDP на более старую. Поскольку проблемы с производительностью RemoteApp встречались и в Windows 10 1709, лучше всего использовать RDP-библиотеки 1607 или 1703. Дело в том, что после обновления сборки Windows 10 устанавливается новая версия RDP-клиента, которая не корректно работать с программами, опубликованными через RDS RemoteApp.

Вы можете исправить низкую производительность RemoteApp на клиентах, заменив файлы mstsc.exe и mstscax.dll в папке C:\Windows\System32 версиями из предыдущей сборки Windows 10 (1703 или 1607).

Как заменить файлы клиента RDP в Windows 10?

  1. Закройте все RDP-соединения и запущенный RemoteApp (лучше даже перезагрузить компьютер);

  2. Скачать архив с версиями mstsc.exe и mstscax.dll из сборки Windows 10 1607 (mstsc-w10-1607.zip);

  3. Скопируйте исходные файлы mstsc.exe и mstscax.dll из C:\windows\system32\ в C:\BackUp с помощью команд:

    md c:\backup\
    copy C:\windows\system32\mstsc.exe c:\backup
    copy C:\windows\system32\mstscax.dll c:\backup
  4. Затем вам необходимо назначить свою учетную запись владельцу файлов mstsc.exe и mstscax.dll в каталоге C:\windows\system32\, отключить наследование и предоставить себе разрешения на изменение файлов:

    takeown /F C:\windows\system32\mstsc.exe
    takeown /F C:\windows\system32\mstscax.dll
    icacls C:\windows\system32\mstsc.exe /inheritance:d
    icacls C:\windows\system32\mstscax.dll /inheritance:d
    icacls C:\windows\system32\mstsc.exe /grant root:F
    icacls C:\windows\system32\mstscax.dll /grant root:F

    В этом примере имя локальной учетной записи с правами администратора — root. Замените его именем своей учетной записи.

  5. Замените файлы в каталоге C:\windows\system32\ файлами из архива;

  6. Восстановите исходные разрешения для скопированных файлов. Для этого включите наследование разрешений NTFS и установите владельца файлов «NT Service\TrustedInstaller» с помощью инструмента ICACLS:

    icacls C:\windows\system32\mstsc.exe /inheritance:e
    icacls C:\windows\system32\mstscax.dll /inheritance:e
    icacls C:\windows\system32\mstsc.exe /setowner "NT Service\TrustedInstaller" /T /C
    icacls C:\windows\system32\mstscax.dll /setowner "NT Service\TrustedInstaller" /T /C
  7. Осталось перерегистрировать библиотеку::

    regsvr32 C:\Windows\System32\mstscax.dll

Подсказка. Вы также можете заменить системные файлы, запустив командную строку от имени системной учетной записи. Кроме того, вы можете скопировать и заменить файлы mstsc.exe и mstscax.dll на нескольких компьютерах в домене Active Directory.

Это временно устранит проблему с производительностью RemoteApp на клиентах Windows 10.

Статьи по данной тематике