Как включить remotefx на windows server 2019
RemoteApp — это часть роли служб терминального сервера Windows Server 2016 и эта служба даёт доступ к приложениям, работающих на терминальном сервере, таким образом, что как будто вы их запускаете у себя на локальном компьютере. Служба терминального сервера, которая берёт на себя все вычислительные ресурсы приложения, а пользователю отправляет только результат. Ещё и называют удалённым приложением RemoteApp.
Установка ролей и служб RemoteApp
Для установки RemoteApp запускаем Мастер добавления ролей и компонентов и выбираем Тип установки Установка служб удалённых рабочих столов как на скриншоте ниже
Далее выбираем Стандартное обёртывание xD. И после выбираем Развёртывание рабочих столов на основе сеансов .
На пункте Посредник подключения выбираем наш сервер из пула серверов и добавляем его в правое поле.
На следующем пункте, обратите внимание, необходимо отметить чекбксом Установить службу роли веб-доступа к удалённым рабочим столам на сервере посредника подключений к удалённому рабочему столу
Так же выбираем наш сервер из пула серверов и прожимаем Далее / Развернуть
Процесс развёртывания будет отображаться на экране, а по окончанию мы с вами выходим из мастера по нажатию кнопки Закрыть
Настройка коллекции и добавление удалённых приложений
Далее в Диспетчере серверов переходим в Службы удалённых рабочих столов и добавляем коллекцию, присваиваем имя и заполняем описание. Далее
Выбираем сервер из пула. Далее
На данном шаге нам необходимо Добавить Группы пользователей , которые будут иметь доступ к данному приложению remoteapp.
Теперь переходим к завершению настройки удалённого приложения remoteapp, нам нужно зайти в только что созданную нами коллекцию и через Задачи выбрать из выпадающего меню выбрать пункт Опубликовать удалённые приложения RemoteApp
Добавляем нужные нам приложения и финализируем Закрыть
Насройка подключения к RemoteApp приложению
Открывается меню Удалённые приложения RemoteApp и рабочие столы , где нам буду доступны только те приложения к которым у нас есть доступ ( настраивали ранее ). Нажимая на значок приложения начнётся процесс скачивания. После того как вы запустите его вам будет предложено авторизоваться, а уже после чего перед вами откроется уже само приложение 1С RemoteApp или Outlook 2016 RemoteApp .
О технологии RemoteFX от Майкрософт, которая повышает качество работы в режиме удалённого рабочего стола, известно давно. В интернете хватает материалов, демонстрирующих её эффективность. Но большинство оценок носят качественный характер: "вот играем в %game_name%, fps в норме", "вот запустили 3D софт, как будто локально работает! Скриншот здесь, видео там".
В данном исследовании мы разберёмся, как перейти от "попугаев" к конкретным метрикам, чтобы количественно оценить эффективность технологии и объективно сравнить её использование с обычным режимом RDP.
Кратко о RemoteFX
Конфигурация тестовой среды
Выбор показателей для измерений
Обработка данных и построение графиков
Анализ результатов и наиболее интересные графики
Задержки при обработке ввода от пользователя
Общие сетевые метрики
Загрузка центрального процессора
Переопределение групп сбора данных: _1_task_define.cmd
Принудительная остановка записи данных: _1_task_breake.cmd
Конвертация двоичных данных в CSV: blg2csv.cmd
Нормализация заголовков CSV: blg2csv.ps1
Jupiter Notebook: импорт данных
Jupiter Notebook: отрисовка одной метрики на диаграмму
Jupiter Notebook: отрисовка всех метрик на одной диаграмме
Диаграмма со всеми графиками
Кратко о RemoteFX
Традиционный RDP работает так, чтобы как можно больше работы по отрисовке окна удалённого рабочего стола переложить на клиента: по сети передаются графические примитивы и инструкции, которые должна выполнить клиентская видеокарта. Такой подход, в случае показа видео или использования интерфейса Windows Aero, требует поддержки со стороны клиента. Иначе вместо Aero будет использована упрощённая схема, а обработанный CPU сервера видеопоток передан клиенту в виде растровой графики, производительность отрисовки при этом может оказаться просто неприемлемой. Поэтому приходилось выбирать: либо использовать традиционный RDP только в связке с достаточно производительным клиентским железом, либо отказываться от сложной графики.
При включении RemoteFX клиенту по сети по прежнему передаются растровые кадры. Но есть два существенных отличия от традиционного RDP. Во-первых, вся подготовка и обработка графики перекладывается на GPU сервера, это происходит намного быстрее и разгружает CPU. А во-вторых, используется сжатие кадра, которое выполняет кодек RemoteFX. Это существенно снижает объём передаваемых по сети данных, тем самым разгружая канал связи. Это существенно снижает требования к клиентскому железу, но сохраняет достаточный уровень отрисовки и отзывчивости удалённого рабочего стола.
Конфигурация тестовой среды
Сервер
2 vCPU Intel(R) Xeon(R) CPU E5-2696 v4 @ 2.20GHz
GPU NVIDIA GRID M60-1Qб, Dedicated Memory 929 MB, Shared Memory 4095 MB
гостевая ОС Windows Server 2019 Standart x64 1809 (Version 10.0.17763.1577), DirectX 12
network in/out rate limit 50 Mbps
Клиент
Intel(R) Core(TM) i5-7600K CPU @ 3.80GHz, 3801 МГц, ядер: 4, логических процессоров: 4
network in/out rate limit 100 Mbps
OS Windows 10 Pro 2004 (Version 10.0.19041.685), DirectX 12
1920 x 1080 (32 bit) (32Hz)
на вкладке "Взаимодействие" выбрано "Локальная сеть (10 Мбит/с и выше)"
Выбор показателей для измерений
Качество и производительность удалённого рабочего стола нужно оценить с точки зрения как пользователя, так и потребления облачных ресурсов. Будем собирать данные о частоте кадров отрисовки, задержках отклика на ввод данных, сетевом трафике и загрузке CPU/GPU/RAM. Метрики выбраны с учётом официальных рекомендаций по диагностике.
Замеры выполним с помощью стандартного средства Системный монитор . Для этого на каждый тест определим свой сборщик данных, который в течении двух минут будет каждую секунду фиксировать в двоичном blg-файле журнала показания счётчиков:
\Графика RemoteFX(*)\Качество кадра
\Графика RemoteFX(*)\Исходящих кадров в секунду
\Графика RemoteFX(*)\Среднее время кодирования
\Графика RemoteFX(*)\Коэффициент сжатия графических данных
\Графика RemoteFX(*)\Пропущено кадров в секунду — у сервера недостаточно ресурсов
\Графика RemoteFX(*)\Пропущено кадров в секунду — недостаточно сетевых ресурсов
\Графика RemoteFX(*)\Пропущено кадров в секунду — у клиента недостаточно ресурсов
\Задержка ввода данных пользователем на сеанс(Max)\Максимальная задержка ввода
\Сведения о процессоре(_Total)\% загруженности процессора
\NVIDIA GPU(*)\% Video Decoder Usage
\NVIDIA GPU(*)\% Video Encoder Usage
\NVIDIA GPU(*)\% GPU Memory Usage
\NVIDIA GPU(*)\% GPU Usage
\NVIDIA GPU(*)\% FB Usage
\Сеть RemoteFX(*)\Общая скорость отправки
\Сеть RemoteFX(*)\Общая скорость приема
\Сеть RemoteFX(*)\Скорость отправки TCP-данных
\Сеть RemoteFX(*)\Скорость отправки UDP-данных
\Сеть RemoteFX(*)\Общая скорость приема
\Сеть RemoteFX(*)\Скорость получения TCP-данных
\Сеть RemoteFX(*)\Скорость получения UDP-данных
\Сеть RemoteFX(*)\Пропускная способность текущего TCP-подключения
\Сеть RemoteFX(*)\Пропускная способность текущего UDP-подключения
\Память\% использования выделенной памяти
PS. По непонятной причине данные по оперативной памяти не сохранялись в журнал при выполнении задания группы сбора, хотя "вживую" Системный монитор нормально строил графики по обоим показателям. Сброс кэша счётчиков не помог.
Методика тестирования
Чтобы оценить эффективность использования выделенной видеокарты на облачным сервере, нужно провести две серии одинаковых тестов: до и после включения отрисовки удалённого рабочего стола на GPU.
В каждой серии выполним следующие тесты:
ввод текста + 3D BenchMark
ввод текста + просмотр локальных видеофайлов
ввод текста + просмотр youtube-ролика
Для оценки влияния теста на задержку обработки ввода от пользователя поверх основной программы открывается стандартный Блокнот и зажимается произвольная клавиша. Окно редактора на протяжении теста будет постоянной частью всех кадров, поэтому исказит результат в лучшую сторону. Чтобы снизить эффект, размер окна уменьшим до 122*156% 99% кадра будут меняться и визуально будет видно, что имитация активности пользователя работает.
В качестве тестов рекомендуется "использовать любые приложения, которые плотно работают с графикой (например, потоковое видео), приложения, использующие DirectX". Результаты первого теста, с точки зрения пользователя (частота кадров и задержка ввода), практически одинаковые. Поэтому строить графики и анализировать их нет особого смысла. Такой тест больше пригодится для диагностики RemoteFX.
Выполнялся при помощи FurMark в полноэкранном режиме.
Локальные видеофайлы воспроизводились в Windows Media Player, равёрнутом на весь экран, без установки каких-либо дополнительных кодеков, по кругу в следущем порядке:
"Ants carrying dead spider": 1920 x 1080, 10667 кбит/с, 19 секунд, 29.97 fps
"Flying Through Forest 1": 1920 x 1088, 48072 кбит/с, 9 секунд, 25 fps
Единственным критерием отбора была динамичность ролика: видеоряд должен был как можно сильнее нагрузить кодек RemoteFX. Но ролик "Flying Through Forest 1" оказался в этом плане интересной находкой: выходной FPS заметно проседал, а входной от запуска к запуску был сильно выше или ниже среднего! Его влияние на различные метрики будет заметно на графиках, которые будут ниже.
В качестве youtube-теста был выбран чудесный ролик "Коста-Рика", который проигрывался в качестве 1080p60 в браузере Firefox, режим "киоск".
Обработка данных и построение графиков
Файлы журналов - blg - имеют двоичный формат: легко открываются в родной программе, графики всех счётчиков на одной шкале, можно выключать/включать/масштабировать/etc. Но чтобы работать с данными из нескольких файлов, нужно другое решение.
Сначала конвертируем двоичные файлы в csv (см. Приложение) с помощью стандартной утилиты reglog и очистим их заголовки (см. Приложение).
Затем в Jupiter -блокноте при помощи библиотек pandas и matplotlib прочитаем csv (см. Приложение, Jupiter Notebook: импорт) и построим графики (см. Приложение, Jupiter Notebook: одна метрика — одна диаграмма).
Анализ результатов и наиболее интересные графики
Задержки при обработке ввода от пользователя
До включения групповых политик сильнее всего на обработке ввода сказалось проигрывание локальных видеофайлов: в среднем 45 мс при рекомендованных 33 мс.
Включение отрисовки через GPU в групповых политиках стабилизировало этот показатель во всех сценариях.
Частота кадров
После включения GPU ускорения ситуация явно становится лучше, особенно в 3D тесте. Результаты двух других тестов хоть и демонстрируют улучшение, но недостаточно: провалы на графиках соответствуют визуальным "рывкам" при просмотре.
Воспроизведение "Flying Through Forest 1" (1920 x 1088, 48072 кбит/с, 9 секунд, 25 fps): от запуска к запуску на вход кодека RеmoteFX поступало либо повышенное либо пониженное количество кадров. Возможно, причина в перекодировке из формата QuickTime, "лишних" 8 пикселях ширины кадра или битрейте.
"Коста-Рика" также вызвал "проседание" FPS у RemoteFX: его проигрывание в браузере в 1080p60 ложилось на центральный процессор. Возможно, он просто не успевал перекодировать из 60fps и подготовить нужный кадр для RemoteFX.
Общие сетевые метрики
При включении GPU ускорения происходит рост сетевого трафика, который зависит от сценария теста.
Видно, что самым тяжёлым для кодека RemoteFX опять оказался тот же самый видеофайл, "Flying Through Forest 1". Первый запуск этого теста, когда наблюдается провал входящих кадров, также видим скачки трафика до 60 Мбит/с и потери до 30% - 40%.
Загрузка центрального процессора
Включение GPU ускорения практически вдвое разгружает центральный процессор, за исключением youtube-теста. И даже здесь удалось уйти от периодической 100% загрузки.
Загрузка видеокарты
Возможно, разгадка странного поведения второго ролика кроется в графике 17: входящих для RemoteFX кадров было больше, когда видеокарта была больше загружена кодированием.
Выводы
В RDP протоколе частота кадров ограничена 30-ю кадрами в секунду. Со стороны сервера увеличить лимит FPS можно, но бессмысленно: на практике терминальная сессия перестала отрисовывать окно и реагировать на действия как раз при проигрывании "того самого" видеофайла :).
Итоги в цифрах:
Частота кадров стабилизируется почти на максимально возможном для протокола уровне: 29-30 FPS в среднем вместо 25 или даже 15 FPS
Отзывчивость удалённого рабочего стола также стабилизируется, при этом возрастая в несколько раз
Заметно, на 20-50 %, разгружается центральный процессор
Немного возрастает утилизация канала связи, на 3-6 Мбит/сек
Утилизация GPU составила до 20%
Результат действительно очень хороший: RemoteFX значительно увеличивает качество работы в терминальной сессии — плавность отрисовки окна и отклик на действия пользователя сравнимы с локальным режимом. Даже "тяжёлые" сценарии показывают в этом плане заметный прирост.
Тесты, конечно, носят искусственный характер: выбором способа нагрузки на кодек RemoteFX можно как "завалить" так и "подтянуть" его результаты. Возможно, более релевантным было бы проведение чего-то вроде "конфетти-теста", например, такого.
Что дальше
Так как на этом этапе тесты проводились для одной сессии и при включении лишь рекомендованных настроек, то далее имеет смысл протестировать производительность:
при одновременной работе нескольких пользователей
при включении в групповых политиках различных дополнительных настроек кодека
Рекомендация по тестированию взята из хоть и старого, но очень подробного описания RemoteFX
Как сделать работу с Microsoft Remote Desktop лучше. Ветка комментариев про UDP, TCP, потери и т.д. В самой статье есть ссылки на спецификации мультитранспортного расширения для протокола RDP
Приложения
Переопределение групп сбора данных: _1_task_define.cmd Принудительная остановка записи данных: _1_task_breake.cmdЗаголовки столбцов содержат различные уникальные данные (id терминальной сессии или оборудования), которые будут несовпадать из-за применения групповых политик и выхода-входа на терминальный сервер. Приводим к единому виду с помощью PowerShell-скрипта:
Jupiter Notebook: отрисовка одной метрики на диаграмму Jupiter Notebook: отрисовка всех метрик на одной диаграммеОбщая ось X на все графики: метрики тестов располагаются строго друг под другом - удобно сопоставлять разные метрики между собой.
Продолжение истории будет на следующей неделе. Спасибо за внимание!
Что ещё интересного есть в блоге Cloud4Y
Подписывайтесь на наш Telegram-канал, чтобы не пропустить очередную статью. Пишем не чаще двух раз в неделю и только по делу.
Чтобы устранить эту проблему, выполните следующие действия:
3. Появится приложение Редактор локальных групповых политик. Используя навигационную панель слева, выберите Административные шаблоны > > Компоненты Windows > > службы удаленных рабочих столов > > узел сеансов удаленных рабочих столов > > среда удаленных сеансов > RemoteFX для Windows Server> , как показано ниже.
4. На отображаемой панели щелкните правой кнопкой мыши запись Configure RemoteFX и выберите пункт Редактировать в отображаемом контекстном меню.
5. Появится следующее диалоговое окно. Выберите переключатель включено и нажмите кнопку [OK].
6. Выберите и щелкните правой кнопкой мыши пункт оптимизировать визуальный опыт при использовании записи RemoteFX, а затем выберите пункт Изменить в отображаемом контекстном меню.
7. Выберите переключатель включено и нажмите на кнопку [OK].
8. Выберите и щелкните правой кнопкой мыши запись оптимизировать визуальный опыт для сеансов службы удаленных рабочих столов, а затем выберите пункт Изменить в отображаемом контекстном меню.
9. Выберите переключатель включено и нажмите на кнопку [OK].
10. Обратите внимание, что статус групповых политик Configure RemoteFX, Optimize visual experience при использовании RemoteFX и Optimize visual experience for Remote Desktop Service Sessions установлен в значение Включено.
11. На панели навигации слева выберите пункт Удаленная среда сеанса, как показано ниже.
12. На отображаемой панели щелкните правой кнопкой мыши запись использовать аппаратный графический адаптер по умолчанию для всех сеансов служб удаленных рабочих столов и выберите пункт Изменить в отображаемом контекстном меню.
13. Выберите переключатель включено и нажмите на кнопку [OK].
14. Выберите и щелкните правой кнопкой мыши пункт Настроить сжатие для ввода данных RemoteFX, а затем выберите пункт Изменить в отображаемом контекстном меню.
15. Выберите переключатель включено и нажмите на кнопку [OK].
16. Обратите внимание, что для параметра использовать аппаратный графический адаптер по умолчанию для всех сеансов служб удаленных рабочих столов и настроить сжатие для групповых политик данных RemoteFX установлено значение Включено.
17. Перезагрузите сервер, и изменения, внесенные в групповую политику, вступят в силу. Программное обеспечение можно после этого запускать на сервере используя удаленный рабочий стол.
Сейчас многие сотрудники компаний перешли на удалённый режим работы и используют удалённый рабочий стол (Windows Remote Desktop) для подключения к рабочей машине и доступа к программному обеспечению, в том числе ArcGIS.
Однако работа с ArcGIS Pro или другим ПО, использующим графический процессор, через удалённый рабочий стол будет затруднено по причине того, что Microsoft Windows Remote Desktop по умолчанию не использует возможности графического процессора для рендеринга. Что приводит к ошибкам при попытке инициализировать драйверы отображения DirectX или OpenGL, и низкой производительности (медленная перерисовка меню, карт и т.д.).
Для этого необходимо выполнить следующие действия (Windows Server 2016 / Windows 10 RDP):
- Откройте средство редактирования групповой политики на панели управления или воспользуйтесь диалоговым окном поиска Windows (клавиша Windows + R, затем введите gpedit.msc)
- Перейдите в Административные шаблоны > КомпонентыWindows > Службы удаленных рабочих столов > Узел сеансов удаленных рабочих столов > Среда удалённых сеансов > RemoteFX для Windows Server 2008R2 (AdministrativeTemplates >WindowsComponents >RemoteDesktopServices >RemoteDesktopSessionHost >RemoteSessionEnvironment >RemoteFXforWindowsServer 2008R2) и включите:
- Настройка RemoteFX
- Оптимизация визуальных эффектов при использовании RemoteFX
- Оптимизировать визуальные эффекты для сеансов служб удаленных рабочих столов
- Прейдите в раздел Среда удалённых сеансов и включите:
- Использовать аппаратные видеоадаптеры для всех сеансов служб удаленных рабочих столов
- Настройка сжатия данных RemoteFX
- Перезагрузите рабочую машину, чтобы изменения, внесенные в групповую политику, вступили в силу.
Эта процедура активирует поддержку DirectX/OpenGL и графический процессор через RDP. Можно убедиться в этом, запустив ArcGIS Pro, открыв карту, а затем нажав Shift + E, это отобразит информацию о используемом рендеринге в текущем сеансе ArcGIS Pro.
OpenGL
DirectX
Плюс пару дополнений.
Статья написана с использованием следующих материалов:
По рекомендации наших читателей дополнили статью материалами как другие известные системы поддерживают удалённую работу с приложениями, интенсивно использующими GPU.
У Citrix есть решение для использования GPU при удалённом доступе к физическим машинам, так и виртуальным. А так же профессиональное решение для виртуализации ПО для работы с 3D с использованием NVIDIA GRID.
NVIDIA предлагает использовать своё решение для виртуализации программного обеспечения интенсивно использующего графический процессор, как для отображения так и расчётов Quadro vDWS. Для пользователей Esri подготовлен отдельных документ с информацией о том, как развернуть рабочую станцию виртуального центра обработки данных NVIDIA Quadro с поддержкой ArcGIS Pro.
Читайте также: