Массовый (и часто вынужденный) перевод проектов на «удаленку», организация распределенных команд и продуктивной работы из любой точки мира — болезненная задача для всех использующих производительное оборудование и ресурсоемкий софт. Домой их по ряду причин не перенесешь, а вот организовать качественный удаленный доступ из любого места без лишних затрат все-таки можно. Рассказываем о первом проверенном нами способе комфортной «удаленки» практически с любого устройства.
В чем проблема, док?
Рядовому сотруднику достаточно подключения к удаленному рабочему столу по протоколу RDP или доступа к корпоративным ресурсам с собственного ноутбука, и здесь у айтишников возникают только сложности с обеспечением безопасности. Если специалисту нужны использующие 3D-ускорение ресурсоемкие приложения, это проблема совершенно другого уровня.
Информационное моделирование зданий (BIM), разные виды проектирования (CAD, CAM и т. д.), геологическое моделирование, связанные с рендерингом задачи, работа с нейросетями и даже создание приложений — серьезные расчеты невозможны без графических процессоров, а для доступа к производительной рабочей станции или серверу обычного Remote Desktop зачастую не хватает. Установить оборудование на дому, как правило, невозможно: слишком много препятствий, вроде отсутствия в помещении необходимой инженерной инфраструктуры или недостаточно высокой пропускной способности каналов передачи данных (информация для обработки обычно хранится внутри корпоративной инфраструктуры).
При этом в офисах под такие задачи часто используют рабочие станции с игровыми картами NVIDIA, что не позволяет задействовать для «удаленки» популярные корпоративные решения.
Недостатки коммерческих решений
Задача обеспечить работу из дома на производительной станции обычно решается с помощью специальных продуктов (Citrix, Horizon) и аппаратных средств, вроде карт и ПО Teradici.
Такие варианты подходят далеко не всем по причине:
существенной стоимости подписки/лицензий;
высокой сложности ПО, которое не сможет установить необученный администратор;
серьезных требований к клиентскому устройству;
ограничений в использовании, т. е. упомянутые решения не работают с игровыми картами: там совместимость начинается от линейки NVIDIA Quadro, которая стоит далеко не у всех пользователей в офисных рабочих станциях.
Как мы уже говорили, в офисах более популярны машины с игровыми картами NVIDIA. Ориентируясь на них, мы проверили более удобный и доступный вариант. О нем и расскажем.
Бесплатная альтернатива
Связанные с удаленным использованием графического процессора задачи решает Moonlight. Этот бесплатный программный продукт с открытым исходным кодом использует протокол NVIDIA GameStream. Он связывает сервер и клиентское устройство и обеспечивает мгновенное удаленное взаимодействие сотрудников с офисными настольными компьютерами и рабочими станциями из любого места.
Попробовать Moonlight для удаленной работы стоит, если вы заняты:
BIM, CAD, CAM и другими видами проектирования;
проектированием и обучением нейросетей, включая data science;
фармакологическими и медицинскими исследованиями;
рендерингом;
разработкой ПО.
Два основных достоинства Moonlight:
кросс-платформенность. Клиентские приложения работают на Windows, MacOS, Linux и Android;
независимость от технологий вендора — в отличие от NVIDIA Shield, Moonlight связывает не только «кошерные» устройства. Совместимый видеоадаптер и софт GeForce Experience должны быть установлены на сервере, а для клиента годится видеокарта любого производителя.
Другие преимущества Moonlight:
низкая задержка подключения и возможность получить на устройстве-клиенте до 60 кадров в секунду;
возможность передачи изображения с разрешением до 4К;
простота использования.
Особенности установки Moonlight
Подробно процесс инсталляции описан в репозитории разработчика на GitHub, а мы остановимся на его ключевых и неочевидных моментах. Чтобы развернуть ПО, нужно пройти несколько больших этапов на клиенте (локальном устройстве пользователя) и сервере или рабочей станции (хосте).
Для начала стоит разобраться с архитектурой Moonlight:
Теперь обратим внимание на важные моменты
Первый: на хосте обязательно должны быть установлены видеокарта NVIDIA с поддержкой GeForce Experience (начиная с GeForce GTX 650 и старше), Moonlight Internet Hosting Tool и приложение GeForce Experience. На клиентском устройстве нужно только приложение Moonlight.
Второй момент: в GeForce Experience следует настроить работу NVIDIA Shield. Для этого достаточно перейти в параметры приложения, выставить переключатель в положение «включено» (зеленый) и добавить путь к утилите mstsc.exe: «C:\windows\system32\mstsc.exe».
Эта настройка предоставляет удаленный доступ к рабочему столу через Moonlight. При первом подключении к серверу необходимо ввести пароль для панели управления NVIDIAGeForce Experience (он высветится в клиенте Moonlight).
Пароль будет запомнен для IP-адреса сервера. Moonlight слушает следующие порты:
TCP 47984, 47989, 48010;
UDP 47998, 47999, 48000, 48002, 48010.
Третий момент: для удаленного управления сервером не следует использовать протокол RDP, так как он не позволяет настраивать NVIDIA Shield. Для доступа к рабочему столу вам потребуется клиент VNC:
После инсталляции выбранной программы удаленного доступа необходимо установить пароль, с помощью которого в дальнейшем можно будет подключаться к хосту.
Стабильность и комфорт работы с Moonlight зависит от качества интернет-соединения. Разработчики рекомендуют использовать программу при скорости исходящего потока от клиентского устройства пользователя к серверу не менее 5 Мбит/с. Обычно для этого клиенту требуется кабельное подключение к Интернету.
При этом на рекомендуемой скорости, как показали тесты, стабильное изображение можно получить только в разрешении 800 х 600. А на модеме с DOCSIS/DSL 6M удалось увидеть нормальную картинку в 3Д с разрешением 1024 х 768. На практике выяснилось, что для HD и 4К нужны оптоволоконный Интернет скоростью не ниже 100 Мбит/с и аналогичное подключение со стороны сервера / рабочей станции.
Moonlight позволяет проводить гибкую настройку качества передачи изображения с хоста на локальное устройство пользователя:
Четвертый важный момент: по умолчанию битрейт устанавливается в зависимости от скорости интернет-соединения. Чем оно лучше, тем выше качество изображения и меньше время задержки. Для выбора необходимого битрейта можно использовать следующую таблицу:
Разрешение |
Кадры/с (FPS) |
Битрейт Мбит/с |
720p, 1280 x 720 |
30 |
5–10 |
1080p, 1920 x 1080 |
60 |
20 |
1440p, 2560 x 1440 |
60 |
40 |
4K/2160p, 3840 x 2160 |
60 |
80 |
И пятый: на качество работы с Moonlight также влияет задержка при интернет-соединении (Latency). Она может определяться расстоянием между сервером и клиентом, топологией сети, загрузкой каналов, сбоями в работе оборудования и иными причинами. В процессе нашего тестирования задержка не превышала 80 мс, что соответствует необходимому для комфортного гейминга и работы с ресурсоемким ПО показателю.
ВАЖНО! Для корректной работы Moonlight на сервере в GPU должен быть подключен монитор или вставлена HDMI/DisplayPort-заглушка, иначе разрешение не поднимется выше базовых 800 х 600.
Подробную инструкцию по использованию Moonlight на наших серверах можно найти здесь.
Проверили на практике: примеры работы Moonlight
Для иллюстрации работы программного обеспечения мы провели несколько тестов:
просмотр видео Big Buck Bunny 60fps 4K;
сцены The Junk Shop в Blender;
геймплей Hellblade Senua's Sacrifice с максимальными настройками графики.
Мы решили воспроизвести рабочую ситуацию и в офисе HOSTKEY запустили тесты на машине со следующими характеристиками:
Операционная система |
Microsoft Windows Server 2019 Standard |
Процессор |
Intel Xeon E-3-1230, v6, 3,5 ГГц |
Графический процессор |
NVIDIA GeForce GTX 1080 Ti (11 Гб) |
Оперативная память |
16 Гб |
При запуске Moonlight на клиенте была получена стабильная трансляция с разрешением 3840 x 2160 и 60 FPS при битрейте в 80 Мбит/с. Отклик приложений был плавным и практически не отличался от управления непосредственно на том устройстве, на котором установлено программное обеспечение.
Здесь можно посмотреть записи трансляций:
Итак, проблема дистанционной работы с ресурсоемкими приложениями оказалась решаемой, причем Moonlight — далеко не единственный способ обеспечить себе комфортный рабочий процесс вдали от офиса.
В следующих постах мы расскажем о других вариантах полноценного удаленного доступа к ПО и оборудованию для рендеринга, проектирования и обучения нейросетей.
Комментарии (15)
cepera_ang
11.12.2021 05:52К слову, RDP при правильных настройках даёт те же 60 кадров в секунду. Из плюсов — может подключаться несколько пользователей к одному компьютеру (так и использую дома — два человека с одного мощного компа). Из минусов — невозможно играть, потому что всем играм нужно относительное положение мышки, а RDP передает абсолютное.
Nnnnoooo
11.12.2021 16:43На рдп при любых настройках будут небольшие косяки и при любых настройках будет пропуск кадров например на видео 4к 60Hz
Главный плюс RDP универсальность и очень неплохая работа на херовых каналах связи.
RDP идеален для офисной работы или например для кодинга (если не важна 100% цветопередача, т.к. есть минимальные артефакты кодирования). Если много постоянно меняющегося контента (видео, анимация на весь экран, игры) rdp не самый лучший вариант. Да лучших то вариантов и нет наверное — везде свои косяки, сабж только для нвидии, парсек платный для больших разрешений и требует онлайн подключения.Так же у RDP очень кривое аудио Вот так и не придумал как получить нормальное аудио внутри Hyper-V виртуалок. И GPU-P виртуализация прекрасно работает и сами виртуалки летают, но качество звука — типичное для рдп гуано. 60 фпс хардварного 3Д в стандартной сессии — без проблем, но в ней вообще нет аудио :( В расширенной сессии — есть аудио, но фиговое, но из-за рдп подключения и качество картинки хуже и нагрузка на проц/видео выше (лишнее кодирование/декодирование) и кадров значительно меньше.
cepera_ang
12.12.2021 11:32Что такое стандартная и расширенная сессии?
easyman
12.12.2021 11:37https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/enhanced-session-mode
cepera_ang
12.12.2021 12:01А, так это что-то специфическое для виртуализации, я думал это разные типы подключения самого RDP.
Тогда я хз какие там проблемы с качеством изображения, правда 4К 60Гц не пробовал — нет таких буржуйских девайсов :) Но это для любого решения будет проблемой, ведь все эти варианты, что парсек, что RDP, что ещё бог знает что, по сути шлют просто видеопоток с рабочего стола, без особых заморочек, а благодаря 444 кодированию это даже и текст не жрёт, и в принципе способно работать с такой скоростью благодаря аппаратным кодерам. Но канал потребует реально жирный на такое дело.
Nnnnoooo
12.12.2021 21:16Так речь о локальном инсталле.
Виртуалки как удобные песочницы.
И проблема что RDP значительно ухудшает пользовательский опыт.
Но оно и понятно — мелкософту локальные инсталлы виртуалок не интересны, им подавай облака.
Найти бы что-то нормальное для проброса аудио из Hyper-V виртуалки, тогда можно было бы пользоваться стандартной сессией, без нагрузки на проц и видео и с нормальным fpscepera_ang
12.12.2021 21:20Virtual Cable? Видел у буржуев в туториалах.
Nnnnoooo
12.12.2021 22:25Неее, тот что в мануалах, только для того чтобы в системе появился хоть какой-то адаптер, парсек тогда сможет его пробрасывать. Просто его используют потому что удобно, хоть и задача у него другая — роутить звук (входы/выводы) внутри одной системы. А виртуалка — это уже другой комп.
freezlite
11.12.2021 20:03Parsec оч хорошо работает минимальное время отклика, хорошие настройки и работает с амд
Nnnnoooo
12.12.2021 21:23минимальное, но все равно лаг есть — плюс напрягает видяху кодированием. Если честно не представляю как могут через него в шутеры играть, я даже в десктопе этот лаг ощущаю и если минут 15 поработать то терпимо, но чем дальше тем быстрее устаю :( Даже у looking glass в линуксе есть небольшой лаг, так там нет ни сжатия, ни кодирования, а просто копирование во фреймбуффер (похоже как в стандартной сессии Hyper-V)
freezlite
12.12.2021 21:43Parsec дает лаг в 8 мс на кодирование и раскодирование в сумме. У вас лагов будет из-за потерь больше без кодировки потому что fullhd на 60 фпс это очень много. Я лично просев по производительности не заметил из за кодирования h265
Nnnnoooo
12.12.2021 22:38-1Мне важно не только отсутствие лагов, но и точная попиксельная цветопередача, поэтому абсолютно все такие пробросы видео автоматом идут в сад
Виртуалки под виндой, это не только игры, а и просто рабочие места, которые один раз настроил и потом переносишь между компами при желании (или вообще где-то в сети разместил, но тогда понятно что пофиг и на картинку и и на артефакты кодирования)
А если попробовать запустить парсек на встройке, то будет вообще печально учитывая что кодирование и декодирование на одном компе. А если несколько виртуалок (равно несколько рабочих столов одновременно). Да и вообще парсек — для запуска только одной копии, если запускать несколько одновременно, то вообще печально
uldashev
Мда, как всегда, из обещаний получился пшик, на какую аудиторию рассчитан данный продукт? 20Mb ps - 10 работников и исходящий канал не менее 2Gb ps, не всякий провайдер обеспечит такой канал, да за вменяемые деньги, а уж задержки, мм...
Идея RDP - передавать не картинку, а информацию об объектах на экране, со времен 2008го сервера несколько потеряла свою актуальность, так что на данный момент, альтернатив вэбу просто технически не существует.
Calc
Это древний спор что лучше, RDP или VNC
cepera_ang
Почему пшик? Если канал позволяет смотреть ютуб всем сотрудникам пока они были в офисе, то он же позволит транслировать видео с экрана из офиса всем сотрудникам. А задержки, задержки в пределах города бывают удивительно низкими, особенно если провайдер один. Теоретически, скорость света позволяет получить 1мс RTT до 100км.