Постоянное кэширование точечных рисунков rdp что это
В одном из филиалов периодически, при запуске RDP сеанса, начало выскакивать сообщение — Ошибка кэширования рисунков на диск.
На работоспособности терминала это не сказывалось, но каждый раз при запуске, приходилось жать кнопку ОК. Зайдя в свойства RDP подключения и открыв вкладку «Дополнительно» я выключил Темы и Кэширование графики.
После этого терминалка начала работать ещё шустрее. А в конце концов оказалось, что у юзера просто не было прав на запись файлов в папку TEMP.
Комментарии
Комментарий от Сергей [ 19 июня, 2013, 17:30 ]
Добрый день! А не могли бы вы уточнить, на запись файлов в папку Темп на компьютере юзера, или на самом сервере к которому подключается терминалка?
День просидел, и галочки убирал, и в свойствах диска настраивал ничего не получилось. 🙁
Что делает опция «кэширование растровых изображений» в клиенте удаленного рабочего стола?
этот параметр меня всегда смущал:
Что именно делает кэширование растровых изображений в клиенте удаленного рабочего стола Windows? Я понимаю, что это должно улучшить производительность соединения, но как? Это действительно такая большая разница?
3 ответов
кэширование растрового изображения означает, что изображения и другие растровые ресурсы хранятся локально на клиентском компьютере для повторного использования позже. Таким образом, удаленный сервер или ПК не отправляет изображения дважды, уменьшая количество отправляемых данных и экономя использование полосы пропускания.
этот параметр имеет особое значение для медленных соединений (с низкой пропускной способностью), меньше, если вы подключаетесь к машине в той же локальной сети.
при включении параметра клиент удаленного рабочего стола кэширует растровые изображения в файл BMC, расположенный на жестком диске клиента в (пример для Windows XP)
Примечание (интересно, если ваш компьютер является частью домена): поскольку папка кэша хранится в папке» локальные параметры», она не будет реплицирована как часть перемещаемого профиля пользователя.
Он кэширует рисунки, как фон рабочего стола, иконки, и т. д. 🙂
Постоянное Кэширование Растровых
постоянные добавлено кэширование растровых изображений к кэшированию в памяти растровых изображений и глифы, существовавшие в TS 4.0. Тот растровые изображения с сервера сохраняются на диск на клиентском компьютере, который позволяет кэшировать растровые изображения для повторного использования между сеансами клиента, а также обеспечивает гораздо больший размер кэша (10 МБ против 1,5 МБ). Как видно на рисунке 4 (в связанного документа), добавление постоянного кэширования уменьшает объем передаваемых данных сетевое подключение, которое в свою очередь сокращает время, необходимое для отрисовка растровых изображений на экране, пропорционально скорости сети соединение
вполне вероятно, что некоторые из них устарели, поскольку документ был выпущен 9 лет назад, но, надеюсь, он все еще получает через рассуждения о кэшировании растровых изображений.
Так как RDP полагается на передачу команд рисования клиенту, а не только необработанных пикселей с виртуального экрана, в конечном счете команды рисования придут, которые говорят «нарисовать это растровое изображение на экране», и для этих команд, копия растрового изображения будет отправлена клиенту, а также.
этот параметр будет кэшировать растровые изображения для этих команд, так что в следующий раз, когда команда приходит с тем же растровым изображением, растровое изображение не должно быть передано. Это значительно ускоряет протокол RDP по медленному соединению.
Тюнинг типовых ролей Windows. Часть вторая: терминальный сервер и дедупликация
Продолжаем выжимать все соки из Windows-сервера. В этот раз я расскажу про настройку сервера удаленных рабочих столов, более известного как терминальный сервер. В качестве «вишенки на торте» остановимся еще на тюнинге системы дедупликации томов Windows.
Сервер удаленных рабочих столов
В инфраструктуре удаленных рабочих столов основной ролью является узел сеансов Remote Desktop Session Host (далее – RDSH). Начну с подбора аппаратной части для этой роли.
С процессором и памятью все довольно просто: больше памяти, больше процессоров высокой частоты и с большим кэшем – лучше. Чуть больше внимания стоит уделить дисковой подсистеме, ведь именно она часто является узким местом. Основную нагрузку на диски можно условно разделить на три группы:
системные файлы и приложения;
В целях увеличения быстродействия имеет смысл разнести эти группы по разным физическим дискам. Про файл подкачки уже упоминалось в предыдущей статье, а вот пользовательские профили потребуют некоторых манипуляций с реестром.
Для смены места хранения профилей нужно изменить следующий параметр реестра:
параметр: REG_EXPAND_SZ с именем ProfilesDirectory;
Тогда профили всех пользователей будут создаваться уже в другом месте.
Отдельно нужно отметить перемещаемые профили пользователей терминального сервера. Настроить их можно групповой политикой Конфигурация Windows – Административные шаблоны – Службы удаленных рабочих столов – Узел сеансов удаленных рабочих столов – Профили – Задать путь для перемещаемого профиля пользователя служб удаленных рабочих столов. В этой политике можно задать место для хранения профилей пользователей терминального сервера, но храниться будет лишь часть профиля. В частности AppData\Local останется на старом месте.
Помимо изменения места хранения профилей бывает полезно перенаправить ряд пользовательских папок в другое место. Как правило, это практикуется для быстродействия и настройки бэкапов – ведь «мои документы» и «рабочий стол» могут содержать важную информацию, но и не требуют повышенного быстродействия. Перенаправление удобно настраивается с помощью групповой политики.
Сама групповая политика настраивается в Конфигурация пользователя – Конфигурация Windows – Перенаправление папки, и для большинства папок пользовательского профиля можно указать альтернативное расположение.
Настройка политики перенаправления папок
Чтобы не было проблем с созданием папок и доступом в них, я обычно делаю следующие разрешения на ресурс с перенаправленными папками:
группа «Все» может создавать папки и читать. Разрешения применяются только для корневой папки;
создатель-владелец (owner) имеет полный доступ, но только к подпапкам и файлам;
Разрешения на сетевой ресурс с перенаправленными папками пользователей.
Одна из основных нагрузок на диск на сервере с ролью RDSH – синхронная запись. Причиной опять же являются пользователи: ведь при штатной работе идет регулярное обращение к профилю, а также загрузка-выгрузка пользовательских веток реестра (%userprofile%\ntuser.dat). Помимо создания разного рода производительных массивов оптимизировать производительность поможет кэш на запись.
Если у вас нет батарейки для RAID-контроллера, стоит подумать о ее приобретении или же безгранично верить бесперебойникам. Надо сказать, что кэш можно настраивать и через Windows – на вкладке «Политика» в свойствах диска в оснастке «Управление дисками».
Настройка кэша жесткого диска Windows.
Вторым потенциально узким местом является сетевая подсистема. В целях оптимизации не лишним будет по возможности разделить сеть на условный frontend и backend. Через frontend пустить пользовательские подключения, а через backend – подключения к другим серверам, в том числе и к хранилищам для перенаправленных папок и перемещаемых профилей.
Загрузка сети пользовательскими подключениями, как правило, минимальна, а для повышения производительности backend можно использовать объединение адаптеров (LACP) или установить в сервер десятигигабитные адаптеры.
В настройке самой операционной системы можно выделить следующие моменты:
по возможности стоит отключить фоновые процессы: такие как проверка орфографии, автосохранения, индексирование для поиска. Или хотя бы уменьшить их частоту;
также лучше уменьшить частоту проверок статуса приложений, обновлений и прочих синхронизаций;
меньше ненужных процессов и модулей – больше простора всему остальному. Проверить процессы и загружаемые модули можно с помощью встроенной утилиты msinfo32.exe и незабвенной Autoruns;
антивирус на терминальном сервере – не самая лучшая идея, достаточно ограничиться защитой периметра, SRP и регулярными обновлениями. Если же Пети и Не-Пети тревожат паранойю, то стоит хотя бы исключить из проверки часть временных папок: например, с файлами, которые создают системные сервисы и доверенные приложения;
если перенаправленные устройства, такие как воспроизведение звука, микрофон и прочие диски не используются – лучше их отключить.
отдельного упоминания заслуживают перенаправленные принтеры. По возможности лучше не использовать перенаправление принтеров, подключать уже с локального принтсервера. Если подключить не удается – используйте проброс принтеров с помощью штатного средства EasyPrint, без установки драйвера принтера. Ставить драйвер принтера стоит при крайней необходимости, и аккуратно – многие драйвера, особенно для старых принтеров, тянут с собой свои приложения, которые запросто могут и «уронить» службу печати;
129 – именно столько назначенных заданий в свежеустановленной Windows 2016 + Office 2016.
Нельзя не упомянуть возможность терминального сервера под названием RemoteFX, настройка его поведения также влияет на быстродействие.
RemoteFX – это целый набор технологий, отвечающих за сжатие RDP, проброс устройств, работу с видеокартой и устройствами USB как в виртуальной машине, так и на терминальном сервере.
Полезной настройкой является сжатие RemoteFX. Искать ее можно в групповых политиках по адресу Конфигурация компьютера – Административные шаблоны – Компоненты Windows – Службы удаленных рабочих столов – Узел сеансов удаленных рабочих столов – Среда удаленных сеансов – Настройка сжатия RemoteFX.
Настройка сжатия RemoteFX через групповые политики.
Настройка имеет следующие варианты:
оптимизация использования памяти. Нагрузка на сервер небольшая, но повышаются требования к пропускной способности сети;
оптимизация использования полосы пропускания сети. Сеть загружена слабо, но расход памяти составляет около 2 МБ на сессию;
баланс памяти и полосы пропускания сети. Расход памяти составляет около 200 КБ на сессию;
При небольшом количестве пользователей изнутри локальной сети настройка мало влияет на быстродействие. Но когда пользователей много или если они удаленные, стоит задуматься о ее применении.
Рядом с этой настройкой находятся и другие опции, влияющие на быстродействие – тут и настройка кодировки, и настройка максимального разрешения экрана. Особенно интересной является настройка использования графического адаптера для отрисовки изображения – для всех сеансов службы удаленных рабочих столов используйте аппаратный графический адаптер по умолчанию. Начиная с Windows 2016, RemoteFX научился работать не только с виртуальными видеокартами в виртуальных машинах, но и с видеокартой напрямую. Да, теперь видеокарту для ускорения работы можно устанавливать даже в обычный сервер сеансов удаленных рабочих столов.
Другие настройки отображения можно производить на клиентской стороне, в файлах .rdp. Большинство опций находится на вкладке «Взаимодействие».
Настройки отображения, влияющие на быстродействие.
Можно настроить вручную, можно использовать предустановки в зависимости от ориентировочной скорости соединения или же отдать управление автоматике. Самое главное – не стоит отключать «Постоянное кэширование точечных рисунков». При включенной опции клиент будет держать у себя кэш изображения и загружать только изменения рисунка.
Перейду к быстродействию другой роли терминального сервера – шлюза удаленных рабочих столов.
Шлюз удаленных рабочих столов (Remote Desktop Gateway, далее – RDG) удобно использовать для подключения внешних клиентов без VPN – в частности, он позволяет настроить проверку подлинности по сертификату. С примером настройки можно ознакомиться в соответствующей статье, я же ограничусь вопросами быстродействия.
RDG может использовать транспорт TCP и UDP, но в большинстве случаев используется стандартный RPC поверх HTTP. Именно его и касаются следующие настройки в реестре:
Параметр
Путь
Значение по умолчанию
Комментарий
Maxiothreads
HKLM\Software\Microsoft\Terminal Server Gateway
Равняется количеству процессоров
Отвечает за количество выходящих потоков, которые обрабатывает RDG
Максимальный размер кадра, принимаемого сервером. Может варьироваться от 8 КБ до 1 ГБ.
ClientReceiveWindow
HKLM\Software\Microsoft\Rpc
64 КБ
Максимальный размер кадра, принимаемого клиентом. Может варьироваться от 8 КБ до 1 ГБ.
Понять, где есть проблемы, помогут счетчики производительности:
шлюз служб терминалов;
RPC/HTTP Proxy Per Server;
сведения о процессоре;
Скажу и пару слов про третью роль – узел виртуализации удаленных рабочих столов. Он необходим для развертывания инфраструктуры виртуальных рабочих столов (Virtual Desktop Infrastructure – VDI), чуть менее популярной, чем обычные терминальные сервера.
Помимо общих рекомендаций для гипервизоров – быстрее, выше, сильнее – в инфраструктуре VDI в режиме пула виртуальных рабочих столов имеет смысл обратить внимание на ненужные службы и возможности в клиентских операционных системах:
обновление WIndows. Все равно машина при подключении разворачивается из шаблона;
автономные файлы. VDI не уходят в оффлайн;
фоновая дефрагментация. Изменения файловой системы откатываются при отключении;
сон или гибернация. Не поддерживается в VDI;
аварийный дамп. При повторном включении машина будет развернута из шаблона;
автоконфигурация WLAN. На VDI нет Wi-Fi;
служба общих сетевых ресурсов проигрывателя Windows Media;
поставщик домашней группы;
общий доступ подключения к интернету;
служба поддержки Bluetooth;
Помимо отключения служб в шаблонной виртуальной машине, для оптимизации хранения не лишним будет включить дедупликацию в любом варианте развертывания VDI. Сделать это можно при помощи команды PowerShell:
Использование дедупликации изрядно поможет сберечь место не только при использовании виртуальных рабочих столов.
Дедупликация
Дедупликация – это метод сжатия массива, когда повторяющиеся данные не дублируются.
Microsoft советует включать дедупликацию в следующих случаях:
файловые серверы общего назначения – общие папки пользователей, перенаправленные папки профилей и т.п.;
серверы инфраструктуры удаленных рабочих столов (VDI);
Во всех прочих случаях выгоды дедупликации стоит предварительно оценить. В этом поможет утилита DDPEval.exe, которая появится после установки роли дедупликации на сервер.
На диске с большим количеством файловых баз 1С дедупликация поможет сэкономить до 70% места.
Установка компоненты дедупликации производится через графический режим или командлетом PowerShell:
Включить удобно командлетом Enable-DedupVolume с параметром – UsageType, который может принимать значения:
HyperV – для дисков хранения виртуальных машин и VDI;
Backup – для виртуализированных приложений резервного копирования;
Подробнее прочитать про дедупликацию и чем отличаются ее виды, предлагаю в документации Microsoft.
Для оптимизации баланса хранения и производительности следует уделить внимание назначенным заданиям дедупликации и тонким ее настройкам.
Механизм дедупликации использует три вида назначенных заданий:
Название
Что делает
Расписание по умолчанию
Оптимизация
Выполняет дедупликацию
Каждый час
Сбор мусора
Освобождает место на диске
Каждую субботу в 02:35
Проверка целостности
Ищет и восстанавливает повреждения
Каждую субботу в 03:35
Посмотреть назначенные задания можно командлетом Get-DedupSchedule.
Запланированные задания дедупликации по умолчанию.
Разумеется такое расписание может быть неприемлемо, особенно на серверах с высокой загрузкой. В таком случае удобно будет запускать задания только в часы простоя. Отключим задания командой PowerShell:
Добавим новое задание оптимизации в нерабочее время:
И задания сборка мусора и проверки по нерабочим дням:
Подробнее про синтаксис командлета New-DedupSchedule можно почитать в документации.
Большинство тонких настроек дедупликации – то есть большинство параметров для тома – настраивается с помощью командлета Set-DedupVolume.
Параметр
Описание
Допустимые значения
Комментарий
ChunkRedundancyThreshold
Количество ссылок на блок до его копирования в раздел активной зоны хранилища блоков
Положительные целые числа
Обычно нет необходимости изменять значение по умолчанию, но увеличение значения может увеличить быстродействие томов с высокой дупликацией
ExcludeFileType
Типы файлов, исключаемые из дедупликации
Массив расширений файлов
Такие файлы как мультимедиа плохо поддаются дедупликации, оптимизировать их нет смысла
ExcludeFolder
Папки, исключаемые из дедупликации
Массив путей к папкам
Для повышения производительности можно исключить часть папок
InputOutputScale
Уровень параллелизации операций ввода-вывода
1 – 36
На сервере с высокой нагрузкой можно уменьшить количество операций ввода-вывода дедупликации, что скажется на скорости выполнения оптимизации, но ускорит общую работу сервера
MinimumFileAgeDays
Число дней после создания файла, прежде чем он будет считаться доступным для оптимизации.
Положительные целые числа, включая 0
Значение по умолчанию – 3, в ряде случаев можно изменить значение для повышения оптимизации
MinimumFileSize
Минимальный размер файла, чтобы он мог считаться доступным для оптимизации
Положительные целые числа (байты), большие, чем 32 КБ
Для небольших файлов дедупликация не имеет особого значения
NoCompress
Сжатие дедуплицированных блоков
True\False
Для тома, содержащего большое количество сжатых данных, вроде архивов или мультимедиа, сжатие имеет смысл отключить
NoCompressionFileType
Файлы, которые не нужно сжимать
Массив расширений файлов
Уже сжатые файлы сжимать нет смысла
OptimizeInUseFiles
Использование дедупликации для активных файлов
True\False
В случае если на томе большинство файлов – большие и постоянно используемые, в которых меняется регулярно только часть файлов – лучше включить этот параметр. В противном случае эти файлы не будут оптимизированы
OptimizePartialFiles
При включении этого параметра значение MinimumFileAge применяется к сегментам файла, а не ко всему файлу
True\False
Verify
Проверка блока данных не только по хэшу, но и по байтово
True\False
Включение параметра замедляет быстродействие, но обеспечивает большую гарантию сохранности данных
Помимо настроек для тома существуют и общие настройки службы дедупликации. В частности, нас интересует два параметра, находящихся в реестре по следующему адресу:
Теперь, когда дедупликация настроена, можно попробовать выговорить «дедуплицировали, дедуплицировали, да не выдедуплицировали», а потом потратить бюджет не на диски, а на новые серверы в ферму удаленных рабочих столов. И начать тюнить уже их.
А вам приходилось заниматься подобным тюнингом быстродействия терминальных серверов или все «по дефолту»? Был какой-то ощутимый результат?
Как очистить историю подключений через RDP в Windows
При использовании встроенного клиента подключений через удалённый рабочий стол (mstsc.exe) нужно быть готовым к тому, что Windows сохраняет историю подключений. Сохраняются имя или IP-адрес удалённого устройства и имя пользователя, под которым было осуществлено подключение. Иногда это может приводить к глюкам операционной системы. Впрочем, и без последних иногда возникает необходимость очистить историю RDP-подключений.
К примеру, Вы подключаетесь по RDP с общедоступного компьютера. Не лучшая мысль, но иногда так складываются обстоятельства. Информация о подключениях хранится в реестре Windows отдельно для каждого пользователя. Таким образом, если пользователь не обладает правами администратора в системе, историю чужих подключений он не посмотрит. А вот администратор может посмотреть чужие подключения.
Очистка истории подключений через RDP
Нас интересует ветка HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client. Обратим внимание на подразделы Default и Servers. Первый хранит информацию о 10 последних подключениях, а второй содержит в себе перечень всех удалённых устройств и имён пользователей, которые использовались для подключения по RDP.
Зайдя в HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default, вы увидите десять ключей реестра с именами от MRU0 по MRU9 (Most Recently Used). Удалите их, чтобы очистить историю подключений по RDP.
Если развернуть HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers, то можно увидеть перечень хостов, к которым ранее подключались под текущим пользователем. Интересны ключи UsernameHint и CertHash. Это имя пользователя, которое ранее использовалось для подключения к хосту, и отпечаток RDP-сертификата сервера. Имя пользователя из UsernameHint будет подставлено при следующей попытке подключения к удалённому компьютеру.
Удалите содержимое ветки HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers. Если подразделов там много, можно удалить раздел Servers целиком, а потом создать новый пустой с таким же именем.
Далее необходимо удалить файл Default.rdp из каталога Документы текущего пользователя. Файл является скрытым, поэтому предварительно нужно включить отображений скрытых файлов и папок.
Но и это ещё не всё. Информацию о последних RDP-сессиях Windows хранит ещё и в списках быстрого перехода (jump lists). Если набрать в поисковой строке «mstsc», то можно будет увидеть совершённые ранее подключения. Чтобы отключить ведение истории, откройте в реестре ветку HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced, найдите там ключ Start_TrackDocs (или создайте, если ключ отсутствует) и задайте ему значение 0 (тип DWORD). Для очистки уже существующих списков, нужно удалить файлы в каталоге %AppData%\Microsoft\Windows\Recent\AutomaticDestinations.
Вышеописанные действия можно автоматизировать. Ниже пример скрипта:
Что делает данный скрипт?
Скрипт с подобной функциональностью в PowerShell будет выглядеть следующим образом:
Запрет на сохранение истории подключений через RDP
Кроме непосредственно очистки истории RDP-подключений можно запретить Windows собирать эту историю как таковую. К сожалению, разработчики Windows не предусмотрели возможность такого отключения через интерфейс системы, и нам снова придётся лезть в реестр.
Щёлкнув правой кнопкой мыши по разделу HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client, выберите пункт Разрешения.
В открывшемся окне нажмите на кнопку Дополнительно и отключите наследование разрешений от родительских объектов. После этого надо выставить запреты на любые действия с этой веткой для всех пользователей. Это помешает операционной системе записать информацию о подключениях в реестр.
Отключение кэширования изображений
Во встроенном RDP-клиенте Windows есть функция кэширования изображений. Клиент RDP сохраняет редко изменяющиеся куски удалённого рабочего стола в виде растровых изображений. Это уменьшает количество данных, передающихся по сети.
Кэш находится в папке %LOCALAPPDATA%\Microsoft\Terminal Server Client\Cache и представляет из себя файлы с расширениями bmc и bin. В них хранятся растровые изображения размером 64×64 пикселя. При помощи несложных скриптов из этих изображений можно сложить часть удалённого рабочего стола.
Для отключения кэширования изображений нужно открыть настройки RDP-клиента, нажав Показать параметры. На вкладке Взаимодействие нужно найти пункт Постоянное кэширование точечных рисунков и снять галочку.
После всех этих манипуляций подключения к удалённому рабочему столу в Windows станут чуть приватнее.