Прокрутка браузера через RDP прерывистая. Другие приложения ведут себя нормально. Зачем?
У меня есть Windows XP с пакетом обновления 3 (SP3) и машины с Windows 7, действующие как сервер в моей локальной сети. (это всего лишь 100 Мбит локальной сети, нет WAN).
Клиент - Linux с последней скомпилированной последней версией FreeRDP 1.x.
Здесь проблема. Когда вы, скажем, открываете большой документ MS Office (Excel, Word и т. Д.), Вы можете нормально прокручивать его, и он работает очень плавно!
Но в браузерах это немного отрывисто. Так что я имею в виду, что это не проблема подключения.
Почему это происходит? Кстати, я пытался создать простой HTML-файл с большим количеством текста, и он все еще отрывистый. Так что речь идет не о "тяжелых" HTML-страницах с изображениями.
Также я пытался использовать разрешение 800х600 без посторонней помощи. Я что-то упустил.
Я пытался использовать много настроек. Я пытался использовать 16-битные, 24-битные, включение / отключение тем и т. Д.
Любая идея?
PS: На мощной машине с тем же клиентом (FreeRDP) все работает очень гладко.
4 ответа
Ваша проблема, вероятно, вызвана использованием аппаратного ускорения в современных браузерах. Хотя это обычно быстрее в локальных системах, оно может стать очень медленным при использовании в удаленных сеансах, поскольку отсутствуют процедуры рисования высокого уровня, которые могут быть захвачены серверным компонентом удаленного программного обеспечения. Поэтому удаленное программное обеспечение должно возвращаться к отправке растровых изображений вместо команд рисования GDI.
Отключите аппаратное ускорение в своих браузерах, и все будет в порядке.
- В Firefox
- перейдите в Настройки->Дополнительно->Общие
- снимите флажок Использовать аппаратное ускорение, когда доступно
- В Internet Explorer
- зайдите в Свойства обозревателя->Дополнительно
- Установите флажок Использовать программный рендеринг вместо графического
Что я использовал для своих хостов Windows 7 Professional и Ultimate (я использовал Windows 7 в качестве RDP-клиента, но они должны работать):
Изменение алгоритма сжатия
Введите в строке поиска в меню "Пуск": gpedit.msc
Computer Configuration
> Administrative Templates
> Windows Components
> Remote Desktop Services
> Remote Desktop Session Host
> Remote Session Environment
Отключение автонастройки TCP (для хоста Windows Vista+)
- Открыть
cmd.exe
как администратор - Введите:
netsh interface tcp set global autotuning=disabled
- Чтобы проверить, сработало ли это:
netsh interface tcp show global
Чтобы снова включить его: netsh interface tcp set global autotuning=normal
В качестве первого шага вы должны загрузить и установить последние версии драйверов для плат сетевого интерфейса с сайта производителя по обе стороны соединения.
Ваш клиент для Linux, и, очевидно, есть проблемы с производительностью клиента FreeRDP. Вы всегда можете попробовать старый и настоящий rdesktop, чтобы увидеть, может ли он работать лучше.
Один поток советует использовать вместо этого проект Remmina (который включает FreeRDP). Пожалуйста, прочитайте ветку для более подробной информации.
Вы также можете переключиться на один из вариантов VNC, хотя это может потребовать некоторой настройки. См. Thread1 и thread2 для совета по ускорению.
TeamViewer - еще одна отличная возможность.
Для клиента Windows, статья Top Tweak Enhancement Tweak - MinSendInterval предлагает в разделе реестра HKEY_CURRENT_USER\SOFTWARE\Microsoft\Terminal Server Client
, чтобы создать новый DWORD с именем, Min Send Interval
(с пробелами) и установите его значение 10.
Я считаю, что причина, по которой браузеры отличаются, например, от MS Office или приложений, использующих нативные виджеты, заключается в том, что инструментарий отправляет события более высокого уровня через RDP. Например, при прокрутке инструментарий отправляет событие прокрутки, сообщающее клиенту о перемещении одного прямоугольника, и отправляет только новый контент, которого у клиента нет.
Браузеры, с другой стороны, выполняют рендеринг в растровое изображение, чтобы получить точный контроль над выводом, поэтому каждый раз, когда происходит какое-либо обновление, весь прямоугольник необходимо пересылать повторно. Он сжат, поэтому страницы, не содержащие изображения, будут лучше, но все же гораздо менее эффективны.
Вы можете увидеть другие доказательства этого, посмотрев шрифты: если у вас включен антиалиасинг на вашем сервере, но отключен в настройках клиента RDP, то любое приложение, которое по-прежнему показывает сглаженный текст, вероятно, будет иметь эту проблему, так как это подразумевает это делает свой собственный рендеринг.
У меня есть только ссылка на этот WRT Chrome: http://code.google.com/p/chromium/issues/detail?id=805, но я верю, что это верно для других; может кто-нибудь еще может подтвердить / опровергнуть?
(Примечательно, что Opera, кажется, соблюдает опцию сглаживания клиента RDP и действительно работает быстрее, чем RDP в моем совершенно ненаучном тестировании, поэтому, возможно, не выполняет свой собственный рендеринг в резервное растровое изображение. С другой стороны, это все еще много медленнее, чем прокрутка в Thunderbird, например, так что я не уверен там.)
Есть хорошая статья в Technet, в которой обсуждается повышение производительности RDP для приложений с интенсивной графикой.
ПРИМЕЧАНИЕ. В статье Technet подчеркивается важность тестирования этого перед развертыванием этих изменений.
Для оптимальной производительности рекомендованы следующие изменения реестра:
[HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client]
"Min Send Interval"=dword:00000001
"Keep Alive Interval"=dword:00000001
"BitmapCacheSize"=dword:0000ffff
"Order Draw Threshold"=dword:00000001
Наряду с вышеуказанными изменениями реестра, мое тестирование показало лучшую производительность с использованием определенных настраиваемых параметров RDP:
- Сглаживание шрифтов
- Композиция рабочего стола
- Постоянное кэширование растровых изображений
Другие параметры опыта отключены.
Тестирование проводилось между двумя рабочими столами Windows 10. Настройки применялись только к компьютеру, с которого я выполнял RDP-соединение.