Как ускорить RDP (медленная работа RDP на windows 7/XP)

Если вам приходится работать с windows-системами, то определенно медленная работа RDP это одно из самых ярких проявлений «гения» программистов Microsoft. К сожалению из пользовательского интерфейса ускорить RDP нельзя. Пользовательские настройки rdp-клиента хранятся в реестре. Настройки каждого RDP соединения хранятся в текстовом файле. Их можно изменять как через графический интерфейс, так и просто редактируя текстовый файл. В последнем случае появляется возможность внести несколько особых настроек.

Лирическое отступление.
После настройки, комфорт и скорость работы через rdp-соединение возрастают кардинально. Пожалуй изменения заметны даже сильнее чем при переходе с hdd на ssd.
Однако описываемые далее настройки должны проводиться после проверки следующего чеклиста:
— Минимальный пинг, минимально загруженный и максимально широкий канал.
— Проверка железа: сетевые карты, свежие драйвера, кабели
— Свежее и достаточно производительное железо сервера. Мы пока еще не не пришли в эру беззвучных холодных высокопроизводительных серверов. Свежие бюджетные процессоры как тузик грелку рвут дорогие процессоры и системы 5-7 летней давности.
— Версия windows: Новый протокол windows 7 позволяет ускорить работу rdp на 40% по сравнению с windows XP.
— В настройках соединения изменены «косметические настройки»: глубина цвета, шрифты, звук, тема рабочего стола.
— На удаленной машине отключены «красивости» оформления и фоновое изображение

Однако по теме. Причина тормозов RDP на 100Mb (и даже 1Gb) канале с пингом 1-2мс состоит в настройках клиента и сервера. И по большей части — клиента.

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

Настройки rdp-клиента хранятся в реестре, в ветке [HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client]

Min Send Interval
Самым популярным параметром является Min Send Interval
По умолчанию минимальное время обновления «экрана» установлено в 120мс. Для сравнения, среднее время переключения пикселя матрицы порядка 10мс. А 120 мс. это около 8 кадров в секунду.
Существуют рекомендации установить этот параметр в 1. Однако значения 5-10 будет вполне достаточно для локальной сети.
Для удаленных систем маленькие значения будут проблемой, на глазок типичным для украинского-нета являются значения в 15-50 мс. Приблизительно такие значения и следует указывать для Min Send Interval.

В еще одной замечательной статье Terminal Services and Graphically Intensive Applications описываются соображения о других параметрах rdp-клиента

BitmapCacheSize — размер буфера для изображений в памяти (в кб). Например 6000h = 24.5Мб.
BitmapPersistCacheSize — размер постоянного (дискового) кэша картинок (в кб). Можно смело ставить побольше. Можно отключить в .rdp файле
Order Draw Threshold — порог срабатывания при прорисовке. Кроме одинокой рекомендации установки в 1мс, информации нет. На своей системе этот параметр я не устанавливал.

«Order Draw Threshold»=dword:00000001

PinConnectionBar — не закреплять панель содинения. На скорость не влияет. Можно изменить в .rdp файле




В итоге мы получаем следующие «примерные» настройки:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client]
«PinConnectionBar»=dword:00000000
«BitmapPersistCacheSize»=dword:0000ffff
«BitmapCacheSize»=dword:00006000
«Min Send Interval»=dword:0000000a

(сохранить в файл с расширением .reg, привести кавычки к нормальному состоянию и запустить)

Ссылки:
Защищаем и оптимизируем RDP
Настройки .rdp файлов
Видос-презентация об RDP на 52 минуты
Настраиваем сервер
How to Minimize Graphics Use with Terminal Server
http://support.microsoft.com/kb/321706

Похожие записи:

Как ускорить RDP (медленная работа RDP на windows 7/XP): 4 комментария

  1. impulse.kiev.ua

    Спасибо большое за такую полезную информацию. Надеюсь у вас чаще будут такие статьи! Удачи вам в развитии!

  2. Павел

    Спасибо огромное. Организовали терминальный сервер с конструкторским ПО, были проблемы с прорисовкой графики по RDP. После выполнения рекомендаций из статьи, ситуация заметно улучшилась.

  3. Илья

    Сталкивались ли вы с зависанием экрана в сессии ? После некоторого времени наблюдения зависает картинка, часы идут, соединение активно, но экран не обновляется. Настроил все как у вас написано.

  4. Эрт Автор записи

    Илья
    Нет, с зависанием экрана сессии сталкиваться не приходилось. Но если часть удаленного экрана отрисовывается, значит скорее всего проблема не в клиенте, а в сервере. Или даже возможно, в конкретном приложении. К примеру, просмотр hd-видео через rdp будет выглядить очень странно из-за большого количества прорисовок окна. В такой ситуации поможет увеличение параметра Min Send Interval.
    На альтернативных rdp-серверах приходилось сталкиваться с частыми обрывами сессии (черный экран и автоматическое восстановление сессии). Родные же для протокола микрософтовские системы очень любят со временем начинать тормозить с отрисовкой удалённого экрана, от чего спасает периодическая перезагрузка сервера (раз в месяц, например)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *